MapStruct知道源状态检查,并且默认情况下使用状态检查器方法(如果存在的话)来验证目标对象中的字段是否应该使用源对象中的值更新。没有状态检查器,MapStruct默认只更新非空值的字段。
我想在REST控制器中使用DTO来使用MapStruct的source presence checknig实现部分更新策略,但是由于我使用Lombok来生成getter和setter,所以我还想生成source presence checking方法。
没有办法做到这一点。来源:ME。我是龙目岛的核心撰稿人。
但是,最近有一个关于这个想法的非常长的特性请求讨论:问题#2669:生成hasXXX()方法。它有多个错误的方向,所以我建议你从结尾开始,那里列出了一些具体的计划,如何从这里到达那里。它很复杂.
解决方案: 我不得不更改我的和的顺序。 我必须将放在之上,然后它就起作用了。 我将下面的pom更新到工作版本,所以这里没有非工作代码。 我还将lombok版本转换回当前版本,而不是使用edge版本。 原始问题: 我有2个或多或少相同的类集(见下面的示例) 一组是我的API的DTO,我希望它是不可变的,使用Lombok的@Value和@Builder 一组是要存储在数据库中的实体。使用Lombok的
null 这是我运行单元测试时得到的跟踪: 我认为在我的pom.xml文件的build/plugin部分缺少或放错了地方 可以在这里查看项目的源代码: https://github.com/alfredux79/mapstruct-lombock-springboot/tree/stack-overflow-question
有没有一种方法可以忽略使用mapstruct在此代码示例中第三种方法的映射器的生成?
我有很多使用Lombok生成器的字段的类。 但是,这为调用方提供了在不设置的情况下创建对象的选项,如果使用该选项,将导致运行时失败。 我正在寻找在构建时捕捉这些错误的方法。 有一些非Lombok的方法,比如StepBuilder,甚至是构造函数来确保总是设置强制字段,但我对使用Lombok Builder实现这一点的方法感兴趣。 此外,我理解为了进行编译时检查而设计类(如step-builder或
如何为第三方类创建Lombok生成器(即,我无法修改其源代码)? 我有一个无法更改的现有类: 现在我想创建一个,这样我就可以得到一个流畅的Builder api,用默认值简化的实例化。这就是我所尝试的: 代码已编译,我可以参考生成器,例如。 但是,对于和而言,这不起作用,因为返回。
我正在使用lombok@Builder。当我将注释放在类上时,生成公共方法。但是我想创建私有的方法。不幸的是,注释没有选项。我该怎么办?