Spring Boot 集成 Mapstruct

Spring Boot 集成 Mapstruct

Mapstruct 版本 1.5.5.Final , lombok版本 1.18.20。

   <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.5.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <annotationProcessorPaths>
                        <!-- 1.Lombok 1.18.12 版本以下: annotationProcessorPaths中mapstruct、projectlombok顺序不受影响。-->
                        <!-- 2.Lombok 1.18.16 版本以上: annotationProcessorPaths中mapstruct、lombok顺序受影响,mapstruct应该遵循lombok路径-->
                        <!-- 3.Lombok 1.18.16 版本以上: lombok-mapstruct-binding非必须配置项。-->
                        <!--      引入 mapstruct-processor    -->
                        <path>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                            <version>${lombok.version}</version>
                        </path>
                        <!--      引入 mapstruct-processor    -->
                        <path>
                            <groupId>org.mapstruct</groupId>
                            <artifactId>mapstruct-processor</artifactId>
                            <version>${mapstruct.version}</version>
                        </path>
                    </annotationProcessorPaths>
                </configuration>
            </plugin>

注意事项

  1. Lombok 1.18.12 版本以下: annotationProcessorPaths中mapstruct、projectlombok顺序不受影响
  2. Lombok 1.18.16 版本以上: annotationProcessorPaths中mapstruct、lombok顺序受影响,mapstruct应该遵循lombok路径
  3. Lombok 1.18.16 版本以上: lombok-mapstruct-binding非必须配置项

java: No property named “L_DATE” exists in source parameter(s). Did you mean “l_DATE”?

使用lombok后,如果有这种首字母大写后跟下划线的属性名,需注意set方法的转换

    private String L_NAME;
    private String L_DATE;
    private String L_TIME;

    public void setL_NAME(String l_NAME) {
        L_NAME = l_NAME;
    }

    public void setL_DATE(String l_DATE) {
        L_DATE = l_DATE;
    }

    public void setL_TIME(String l_TIME) {
        L_TIME = l_TIME;
    }

mapper的source应与set

       @Mapping(source = "l_NAME", target = "l_name"),
       @Mapping(source = "l_DATE", target = "l_date"),
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值