2016-04-22 46 views
4

我在MapStruct中使用大型模型(超過50個字段)在我的代碼中的不同業務用例之間共享。根據入口點,一些屬性將被映射,而另一些則不會。當我構建我的項目時,我總是會得到「警告:未映射的目標屬性」消息。MapStruct忽略自動取消映射的屬性

我研究,發現它可以告訴mapstruct使用時,給我的對象有這麼多的領域語義

@Mapping(target = "propName", ignore = true) 

問題忽略場,這將需要大量的代碼忽略每個映射器類中的每個屬性。我也不想在我的日誌中發出這個警告。有沒有什麼辦法可以告訴mapstruct忽略未映射的內容,從而避免此消息?

回答

18

您可以設置「未映射目標政策」的@Mapper水平或通過@MapperConfig跨越多個映射器共享設置:

@Mapper(unmappedTargetPolicy = ReportingPolicy.IGNORE) 
public interface MyMapper {} 
+0

謝謝,非常完美。 –

+0

有沒有辦法在方法級別做同樣的事情? – TheBakker