当前位置: 首页 > 知识库问答 >
问题:

Spring数据中带有默认值的Lombok构建器

倪鸿禧
2023-03-14
@Entity
@Data
@Builder
@NoArgsConstructor // @Builder creates the all-args version but I need this one elsewhere.
@AllArgsConstructor(access = AccessLevel.PRIVATE) // Having @NoArgsConstructor disables the @AllArgsConstructor needed by @Builder unless I have this explicitly applied
public class MyClass {

  // ...
  @Builder.Default
  private String foo = "Some Default Value"
  // ...

}

简单地创建setter和防止NULL是不起作用的。我可以显式地写出AllArgsConstructor,但这(在某种程度上)违背了Lombok的目的。不是一个可怕的解决方案,但也不理想。

有人能想出任何解决办法吗?

共有1个答案

赏新知
2023-03-14

我知道您可以使用非Lombok默认值指定默认值。我没有用这个特殊的案子试过,但值得一试。

@value(“#{prop['my.property']?:12345}”)

也许您应该尝试使用RequiredArgs构造函数,该构造函数只指定使用“每个final/非null字段一个参数”且不会重写var的构造函数

 类似资料:
  • 问题内容: 我有一个对象 我用两种方式初始化它 这是输出 似乎builder没有获得默认值。我在属性中添加了注释,对象现在看起来像这样 这是控制台输出 我怎样才能使他们俩都成为? 问题答案: 我的猜测是,这是不可能的(没有删除代码)。但是,为什么不仅仅实现所需的构造函数呢?Lombok旨在使您的生活更轻松,如果Lombok无法解决某些问题,请按照老式的方式进行操作。 控制台输出:

  • 我正在使用Lombok注释,但我希望一些字段是可选的,并默认为,以避免NPE。有没有一个简单的方法可以做到这一点?我什么也找不到。 或者,一种自定义的方法,用于在变量为时返回默认值。

  • 龙目岛的版本是1.18.0。 我在类级别设置了。 当我尝试为列表变量设置默认值时: 我得到一个错误: 除了自己编写生成器之外,还有其他方法吗?

  • 我正在开发一个基于spring boot的rest web服务,我使用lombok来生成getter和setter,但是当我调用我的web服务时,我得到了一个带有默认值null的对象,这是我的代码: 我的实体 : 这是我的Rest服务: 在我的配置文件中,我添加了以下行: 当我呼叫我的服务时,我得到以下响应: 如果我在我的类中添加了getters和setters,它就能正常工作,我会得到json的

  • 问题内容: 我正在将Lombok项目与Spring Data JPA一起使用。有什么方法可以将Lombok 与JPA默认构造函数连接? 码: 据我所知,JPA需要默认的构造函数,该构造函数被注解覆盖。有什么解决方法吗? 这段代码给我错误: 问题答案: 更新 根据反馈和John的回答,我已更新了不再使用or的答案,而是通过和创建访问器和变量,通过创建默认构造函数via,最后我们创建了构建器通过via

  • 我使用默认构造函数从子类中设置recordId的值,最初没有使用lombok。最终我决定在这里使用构建器,但现在的问题是lombok构建器在内部覆盖了我的默认构建器,因此从未设置值。