字段映射 mapStruct lombok
lomkbok
<org.projectlombok.version>1.18.20</org.projectlombok.version>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${org.projectlombok.version}</version>
<optional>true</optional>
</dependency>
安装lombok插件
mapstruct
<org.mapstruct.version>1.5.5.Final</org.mapstruct.version>
解决:
lombok 1.18.16之后,添加path,必须使用 lombok-mapstruct-binding 插件。
<lombok-mapstruct-binding.version>0.2.0</lombok-mapstruct-binding.version>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.11.0</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<annotationProcessorPaths>
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${org.mapstruct.version}</version>
</path>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${org.projectlombok.version}</version>
</path>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok-mapstruct-binding</artifactId>
<version>${lombok-mapstruct-binding.version}</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
使用
一对一映射
@Mapper(componentModel = MappingConstants.ComponentModel.SPRING)
public interface OrderMapper {
@Mapping(target = "bankId", source = "orgId")
@Mapping(target = "programDetails.days", source = "programDetails.days")
OrderItemDto infoToOrderItem(Info info);
}
多对一
如两个转换成一个对象
如果与mybatis的mapper冲突,可改为Convert包
会自动生成 OrderConverterImpl 在target中

浙公网安备 33010602011771号