字段映射 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>
org.mapstruct mapstruct ${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中

posted @ 2024-02-22 01:46  你今日食咗饭未  阅读(91)  评论(0)    收藏  举报