Java中MapStruct忽略单个目标字段t3消除未映射警告的方法
解决MapStruct仅忽略单个未映射目标字段的问题
直接通过@Mapping注解指定要忽略的目标字段即可,不需要设置source属性(因为源类A中根本没有t3字段),正确写法如下:
import org.mapstruct.Mapper; import org.mapstruct.Mapping; @Mapper public interface AMapper { @Mapping(target = "t3", ignore = true) B toB(A a); }
关键说明
@Mapping(target = "t3", ignore = true)的作用是明确告诉MapStruct:目标类B中的t3字段不需要进行映射,跳过该字段的检查。- 你之前尝试的
@Mapping(source = "t3", ignore = true)是错误的,因为源类A没有t3字段,MapStruct不需要也无法找到对应的源属性,只需要指定目标字段即可。 - 这种方式只会忽略
t3这一个字段,后续如果B类新增其他未映射的字段,依然会触发警告,完美满足你“仅忽略t3”的需求,不会像unmappedTargetPolicy = ReportingPolicy.IGNORE那样全局忽略所有未映射字段。
内容的提问来源于stack exchange,提问作者JohnN
相关产品推荐
相关产品推荐

