【问题标题】:Generate MapStruct presence checker methods with Lombok使用 Lombok 生成 MapStruct 存在检查器方法
【发布时间】:2020-12-27 13:42:07
【问题描述】:
MapStruct 知道source presence checking
并默认使用存在检查器方法(当然如果存在)来验证是否应该使用源中的值更新目标对象中的字段
目的。如果没有存在检查器,MapStruct 默认只更新具有非空值的字段。
我想在 REST 控制器中使用 DTO 来使用 MapStruct 的源存在检查实现部分更新策略,但由于我使用 Lombok 生成 getter 和 setter,我还想生成源存在检查方法。
【问题讨论】:
标签:
java
lombok
mapstruct
【解决方案2】:
简而言之,我创建了一个支持@PresenceChecker 注释并生成hasXXX() 方法的lombok 扩展。
// Original code
@PresenceChecker
@Getter
@Setter
public class UserUpdateDto {
private String name;
}
//Generated code
public class UserUpdateDto {
private boolean hasName;
private String name;
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
this.hasName = true;
}
public boolean hasName() {
return this.hasName;
}
}
更详细的答案可以找到here