我在我的代码中使用不同业务用例之间共享的大型模型(超过50个字段)的MapStruct。根据入口点,将映射一些属性,而不映射一些属性。当我构建我的项目时,我将始终获得"警告:未映射的目标属性"信息。
我已经研究过并且可以通过使用语义来告诉mapstruct忽略该字段
@Mapping(target = "propName", ignore = true)
问题是,如果我的对象有这么多字段,则需要大量代码来忽略每个映射器类中的每个单独属性。我也不希望在我的日志中出现此警告。有没有办法告诉mapstruct忽略未映射的内容,避免这条消息?
答案 0 :(得分:45)
您可以设置"未映射的目标政策"在@Mapper
级别或通过@MapperConfig
在多个地图制作者之间共享设置:
@Mapper(unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface MyMapper {}
答案 1 :(得分:0)
用于忽略自动映射 MapStruct 1.3.0。最终参考指南:
通过@BeanMapping(ignoreByDefault = true)的默认方式 行为将是显式映射,这意味着所有映射都必须 通过@Mapping指定,并且不会发出警告 缺少目标属性。
@BeanMapping(ignoreByDefault = true)
OneObj map(TwoObj two);