【问题标题】:Which lombok annotation fits best on JPA entity?哪个 lombok 注释最适合 JPA 实体?
【发布时间】:2023-03-20 05:58:01
【问题描述】:

我同时使用project lombokHibernate。 我想知道在实体类上通常应该使用哪个 lombok 注释。

第一个候选者是@Data,但它会为所有非最终字段生成设置器。由于id 字段不是最终的,我有我不想要的setId() 方法。

第二个候选者是@Value,但随后id 字段被标记为最终字段,这就是它必须由应用程序手动分配的原因。

我也可以使用@Builder,但它与@Data 有同样的问题。

为了解决@Data 的问题,我可以为id 字段编写自己的私有设置器来覆盖生成的设置器。但也许有更好的方法?在这种情况下,最佳做法是什么?

【问题讨论】:

  • 独立为字段添加getter和setter注解。如果您需要最终字段,可以使用所需的 args ctor
  • 您可以使用访问受限的 settter。 stackoverflow.com/a/34299054/479159

标签: java jpa annotations lombok


【解决方案1】:

我认为您对 @Data 的作用有误。 @Data 将一堆其他注释组合成一个。它不会为您生成代码。它对您编写的代码执行注释。

我强烈推荐阅读Does the project lombok data annotation create a constructor of any kind

此链接实际上引用了相应的lombok data page 本身。

【讨论】:

  • “它不会为你生成代码”是什么意思?
  • 我从你自己的问题中重复一遍:第一个候选人是@Data 但它会为所有非最终字段生成设置器。由于 id 字段不是最终的,我有我不想要的 setId() 方法。使用 Data 注释类不会生成任何 getter/setter。如果您编写了 getter/setter,它将自动对它们执行 getter/setter 注释处理,就像您自己手动注释它们一样。
猜你喜欢
  • 1970-01-01
  • 2010-09-21
  • 1970-01-01
  • 1970-01-01
  • 2021-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多