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