MapStruct 1.3.0.Final。不要忽略非getter-setter方法

时间:2019-02-18 09:52:09

标签: mapstruct

我使用Mapstruct和JOOQ在记录类和POJO之间进行映射。今天,我尝试从Mapstruct 1.2.0.Final切换到1.3.0.Final。但是我遇到这样的编译错误-Unmapped target properties: "value1, value2, value3, value4"

JOOQ生成带有常规设置器/获取器和一些公共非静态方法的记录类,其名称类似于valueNvalueN方法为每个设置器/获取器生成。

使用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行为?

2 个答案:

答案 0 :(得分:0)

在1.3.0.Final中,要禁用流利的访问器,不幸的是您必须使用选项1或选项2。

如果使用选项2,则可以从DefaultAccessorNamingStrategy扩展,然后为isFluentSetter返回false

答案 1 :(得分:0)

或者。.

选项2。对所有valueN方法使用@BeanMapping(ignoreByDefault = true)。