springboot 使用mapstruct映射字段全是null,映射不了字段

原因:升级springboot版本后 不知道为何lombok的版本被自动升级为1.18.26了 原本1.18.12时是正常的  

解决办法:将lombok版本降级到1.18.12即可解决

引用内容未提及在MapStruct中实现指定字段不为null才进行更新的方法。一般而言,可利用`@MappingTarget`注解和条件逻辑来达成指定字段不为null才更新的目的。下面是一个示例代码: ```java import org.mapstruct.Mapper; import org.mapstruct.MappingTarget; import org.mapstruct.factory.Mappers; // 源对象 class Source { private String name; private Integer age; // getters and setters public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } } // 目标对象 class Target { private String name; private Integer age; // getters and setters public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } } // MapStruct映射接口 @Mapper interface MyMapper { MyMapper INSTANCE = Mappers.getMapper(MyMapper.class); void updateTarget(Source source, @MappingTarget Target target); } public class Main { public static void main(String[] args) { Source source = new Source(); source.setName("John"); // age 为 null Target target = new Target(); target.setName("Jane"); target.setAge(30); MyMapper.INSTANCE.updateTarget(source, target); System.out.println("Name: " + target.getName()); // 输出: John System.out.println("Age: " + target.getAge()); // 输出: 30 } } ``` 在上述代码里,`updateTarget`方法借助`@MappingTarget`注解把`Source`对象的属性更新到`Target`对象。若`Source`对象的某个属性为null,`Target`对象的对应属性就不会被更新。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值