mapstruct 对象转换,属性为null

本文详细描述了一项目中遇到的MapStruct对象映射时,属性默认为null的问题。通过复现步骤、分析原因(涉及Lombok与MapStruct冲突),并提供解决方案,包括调整编译顺序以确保属性赋值。适合开发者理解和处理此类转换问题。
摘要由CSDN通过智能技术生成

mapstruct 对象转换,属性为null

问题

描述

项目中同时使用了mapstruct ,在最终生成的jar反编译中发现,impl里仅new了一个对象,并未对属性赋值,最终结果为null。

复现

转换
在这里插入图片描述
生成,可以看到最终生成的实现里仅new了一个GetSchoolVO,并没有赋值。
在这里插入图片描述
请求接口中可以看到有一条数据,但是属性全部为null
在这里插入图片描述

分析

多次测试后,发现如果clear target后,生成属性全部为null,若不clear,直接删除添加红框代码后,可以对属性赋值,由此可以感知为编译时产生的问题。
在这里插入图片描述
看到了另一篇博客提到了lombok,再次查看自己的pom文件,发现在build的时候,lombok与MapStruct问题,调整后解决。
改之前
在这里插入图片描述
正确顺序
在这里插入图片描述
实测解决

测试

实现,成功赋值
在这里插入图片描述

接口
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值