使用@SuperBuilder在MapStruct中报错处理

问题:使用@SuperBuilder后进行MapStruct转换发生错误,一些字段无法识别

报错信息.png

解决
1、对无法转换的字段添加映射,其中addVersion是父类里的字段

    @Mapping(target = "addVersion", source = "addVersion")
    @Mapping(target = "name", source = "ipKey")
    @Mapping(target = "address", expression = "java(MapstructUtils.getIpAddress(interfaceDO))")
    InterfaceItem do2InterfaceItem(InterfaceDO interfaceDO);

2、内部Mapper的注解@Mapper内添加参数builder = @Builder(disableBuilder = true)

@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, builder = @Builder(disableBuilder = true))
public interface SubinterfaceMapStruct {
}

看下生成后的方法


image.png

不屏蔽builder方法生成的方法


image.png

你可能感兴趣的:(使用@SuperBuilder在MapStruct中报错处理)