Java MapStruct忽略自动取消映射的属性
我在代码中使用MapStruct,在不同的业务用例之间共享大模型(超过50个字段)。根据入口点的不同,将映射某些属性,而不映射某些属性。当我构建我的项目时,我总是会收到“警告:未映射的目标属性”消息 我已经研究并发现,可以通过使用语义Java MapStruct忽略自动取消映射的属性,java,mapstruct,Java,Mapstruct,我在代码中使用MapStruct,在不同的业务用例之间共享大模型(超过50个字段)。根据入口点的不同,将映射某些属性,而不映射某些属性。当我构建我的项目时,我总是会收到“警告:未映射的目标属性”消息 我已经研究并发现,可以通过使用语义 @Mapping(target = "propName", ignore = true) 问题是,考虑到我的对象有这么多字段,要忽略每个映射器类中的每个属性需要很多代码。我也不希望在我的日志上出现此警告。有没有办法告诉mapstruct忽略未映射的内容以避免此消
@Mapping(target = "propName", ignore = true)
问题是,考虑到我的对象有这么多字段,要忽略每个映射器类中的每个属性需要很多代码。我也不希望在我的日志上出现此警告。有没有办法告诉mapstruct忽略未映射的内容以避免此消息?您可以在@Mapper
级别上设置“未映射的目标策略”,或者通过@MapperConfig
在多个映射器之间共享设置:
@Mapper(unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface MyMapper {}
用于忽略自动映射
MapStruct 1.3.0.最终参考指南:
通过@BeanMapping(ignoreByDefault=true)将默认值
行为将是显式映射,这意味着所有映射都必须
将通过@Mapping指定,并且不会发出警告
关于缺少目标属性
在方法级别上是否有相同的操作?如果可以在全局级别上配置,而不仅仅是在两种类型之间配置,那就太好了。
@BeanMapping(ignoreByDefault = true)
OneObj map(TwoObj two);