我使用Mapstruct和JOOQ在记录类和POJO之间进行映射。今天我试着从Mapstruct 1.2.0.Final切换到1.3.0Final。但是我得到了像这样的编译错误-- Unmapped target properties: "value1, value2, value3, value4"。
使用常见的setter/getter和一些名为valueN的公共非静态方法生成记录类。valueN方法为每个setter/getter生成。
在Mapstruct 1.2.0中,它可以很好地工作。在生成的映射器中忽略ValueN方法。生成的映射器只使用getters-setter。我没有显式地为ValueN设置ignore。
如何在Mapstruct 1.3.0中优雅地修复此行为?如何将Mapstruct配置为只使用getters-setters?
现在我看到两个选项:
选项1.对所有valueN方法使用@Mapping(target = "value1", ignore = true)。我可以在目标属性中使用一些正则表达式模式来忽略单个@Mapping中的所有valueN方法吗
选项2.编写我自己的AccessorNamingStrategy
我应该只选择上面的一个选项,或者Mapstruct有任何配置选项来返回1.2.0行为吗?
发布于 2019-02-19 01:59:18
在1.3.0版本中,为了禁用fluent访问器,不幸的是你必须选择选项1或选项2。
如果你使用选项2,那么你可以从DefaultAccessorNamingStrategy扩展,然后对于isFluentSetter返回false。
发布于 2019-02-20 02:49:43
或者选择..。
选项2.对所有valueN方法使用@BeanMapping(ignoreByDefault = true)。
https://stackoverflow.com/questions/54744468
复制相似问题