我使用Mapstruct和JOOQ在记录类和POJO之间进行映射。今天,我尝试从Mapstruct 1.2.0.Final切换到1.3.0.Final。但是我遇到这样的编译错误-Unmapped target properties: "value1, value2, value3, value4"
。
JOOQ生成带有常规设置器/获取器和一些公共非静态方法的记录类,其名称类似于valueN
。 valueN
方法为每个设置器/获取器生成。
使用Mapstruct 1.2.0.Final可以正常工作。 ValueN
个方法在生成的映射器中被忽略。生成的映射器仅使用getters-setter。我没有明确设置ValueN
的忽略。
如何在Mapstruct 1.3.0.Final中正常解决此问题?如何配置Mapstruct以仅使用getters-setters?
现在我看到两个选项:
选项1。
对所有valueN方法使用@Mapping(target = "value1", ignore = true)
。我可以在目标道具中使用某些正则表达式模式来忽略单个@Mapping
中的所有valueN方法吗?
选项2。 编写我自己的AccessorNamingStrategy
我应该选择上面的选项之一,还是Mapstruct有任何配置选项可以返回1.2.0行为?
答案 0 :(得分:0)
在1.3.0.Final中,要禁用流利的访问器,不幸的是您必须使用选项1或选项2。
如果使用选项2,则可以从DefaultAccessorNamingStrategy
扩展,然后为isFluentSetter
返回false
。
答案 1 :(得分:0)
或者。.
选项2。对所有valueN方法使用@BeanMapping(ignoreByDefault = true)。