Java 用JPA@version注释的字段是否需要getter和setter?

Java 用JPA@version注释的字段是否需要getter和setter?,java,hibernate,jpa,spring-boot,Java,Hibernate,Jpa,Spring Boot,我正在为我的所有实体创建一个超类,如下所示(扩展了Spring的AbstractPersistable): 公共类Abstractocidenty扩展了AbstractPersistable{ /** *serialVersionUID */ 私有静态最终长serialVersionUID=630570094304357L; // =================================== //并发性 // =================================== @版

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

公共类Abstractocidenty扩展了AbstractPersistable{
/**
*serialVersionUID
*/
私有静态最终长serialVersionUID=630570094304357L;
// ===================================
//并发性
// ===================================
@版本
私人长版;
}
@version
属性是否需要getter和setter?我的测试通过了,但我只想确保它是可靠的

蒂亚,
Ole

否,如果字段已注释,则使用反射来获取和设置字段


但若对getter进行了注释,则该字段将由getter/setter方法获取/设置

没有字段需要getter和setter,无论是version还是normal作为后续,如果使用基于属性的注释(也称为annotate getter),如果要限制从用户代码对setter的访问,仍然可以将setter设置为package private或private。Hibernate不关心访问限制,仍然能够调用它。
public class AbstractOCIDEntity extends AbstractPersistable<Long> {

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

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

@Version
private long version;
}