mapstruct知道源状态检查,并在默认情况下使用状态检查器方法(当然,如果存在)来验证是否应该用源对象中的值更新目标对象中的字段。默认情况下,如果没有状态检查器,mapstruct只更新具有非空值的字段。我想在rest控制器中使用dto来实现部分更新策略,使用mapstruct的source presence checknig,但是由于我使用lombok来生成getter和setter,所以我还想生成source presence checking方法。
eivgtgni1#
这是没有办法的。来源:我。我是Lombok山的核心贡献者。然而,最近有一个关于特性请求的讨论非常长:issue#2669:generate has()方法。它有多个错误的方向,所以我建议你从结尾开始,这里列出了一些从这里到那里的具体计划。这很复杂。
7vux5j2d2#
简而言之,我创建了一个lombok扩展,它支持 @PresenceChecker 注解和生成 hasXXX() 方法。
@PresenceChecker
hasXXX()
// 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; } }
更详细的答案可以在这里找到
2条答案
按热度按时间eivgtgni1#
这是没有办法的。来源:我。我是Lombok山的核心贡献者。
然而,最近有一个关于特性请求的讨论非常长:issue#2669:generate has()方法。它有多个错误的方向,所以我建议你从结尾开始,这里列出了一些从这里到那里的具体计划。这很复杂。
7vux5j2d2#
简而言之,我创建了一个lombok扩展,它支持
@PresenceChecker
注解和生成hasXXX()
方法。更详细的答案可以在这里找到