MapStruct遇到的坑

1,700 阅读1分钟

在使用mapStruct转换实体属性的时候,发现如果A类和B类都继承了C类,C类中的公共字段没有被转换。麻蛋,这就很蛋疼了,难道要手写。不应该呀,mapStruct就是让我们省略get set方法,不可能绝对不可能。

于是乎,查看Assembler生成的实现类,发现实际是使用了builder()

所以,问题的关键点就找到了。肯定是开启了建造者模式导致的

扯了这么多,其实就一行注解就搞定了,如下代码加在Assembler的类注解上

@Mapper(nullValuePropertyMappingStrategy = NullValuePropertyMappingStrategy.IGNORE, builder = @Builder(disableBuilder = true))

注释:默认不开启建造者模式