【问题标题】:Does a field annotated with JPA @version need getters and setters?使用 JPA @version 注释的字段是否需要 getter 和 setter?
【发布时间】:2016-07-17 02:09:03
【问题描述】:

我正在为我的所有实体创建一个超类(扩展 Spring 的 AbstractPersistable):

public class AbstractOCIDEntity extends AbstractPersistable<Long> {

/**
 * serialVersionUID
 */
private static final long serialVersionUID = 6305700913094302357L;

// ===================================
// Concurrency
// ===================================

@Version
private long version;
}

@version 属性是否需要 getter 和 setter?我的测试按原样通过了课程,但我只是想确保它是可靠的。

TIA, 奥莱

【问题讨论】:

  • 没有字段需要 getter和setter,不管是版本还是普通

标签: java hibernate jpa spring-boot


【解决方案1】:

不,如果字段被注解,则使用反射来获取和设置字段。

但是如果getter被注解了,filed会被getter/setter方法get/set。

【讨论】:

  • 作为后续,如果您确实使用基于属性的注解(也称为注解 getter),如果您想限制用户代码对其的访问,您仍然可以将 setter 设置为包私有或私有. Hibernate 不关心访问限制,仍然可以调用它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-04
相关资源
最近更新 更多