两个实体类都需要有@DATA注解,在编译时需要APT处理注解。
很容易引发一个问题,需要被转化的实体类的@DATA可能还没被APT处理处理完成的时候,转换目标的实体类的@DATA注解就已经被APT处理处理完成。此时还在编译过程中,但是发现两边映射不对等,那么编译报错,就会不成功,无法完成映射。
如图:
解决方法:
在porm文件里通过 <annotationProcessorPaths>(注解处理器)设置先后顺序,在porm最外层project里最后面加一个build,在build里加<annotationProcessorPaths>。要先处理的注解写在前面,后处理的写在后面。
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <skip>true</skip> <source>1.8</source> <target>1.8</target> <annotationProcessorPaths> <path> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>${lombok.version}</version> </path> <path> <groupId>org.mapstruct</groupId> <artifactId>mapstruct-processor</artifactId> <version>${mapstruct-version}</version> </path> </annotationProcessorPaths> </configuration> </plugin>