MapStruct - 生成空对象解决方案
Posted 程序员牧码
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MapStruct - 生成空对象解决方案相关的知识,希望对你有一定的参考价值。
lombok 和 mapstruct 配合转换 bean 后,mapstruct 生成空的实现(对象是有的,但是属性没赋值)
解决思路
在 maven-compiler-plugin 插件下多配置一个 lombok-mapstruct-binding 注解处理器来绑定mapstruct 和 lombok
代码实现
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>8</source>
<target>8</target>
<encoding>UTF-8</encoding>
<annotationProcessorPaths>
<!-- 必须要加, 否则生成不了 MapperImpl 实现类 -->
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>1.4.0.Final</version>
</path>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.20</version>
</path>
<!-- 如果是 0.1.0 有可能出现生成了maptruct的实现类, 但该类只创建了对象, 没有进行赋值 -->
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok-mapstruct-binding</artifactId>
<version>0.2.0</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
以上是关于MapStruct - 生成空对象解决方案的主要内容,如果未能解决你的问题,请参考以下文章
Mapstruct 映射:如果所有源参数属性为空,则返回空对象
Mapstruct 映射:如果所有源参数属性为空,则返回空对象
mapstruct 1.4.2和lombok 1.18.16之后版本,报错和mapstruct生成空的实现