休眠/JPA - 注释 Bean 方法与字段

2022-09-01 05:05:48

我有一个关于Hibernate用法的简单问题。我一直看到人们通过注释类的字段和在相应的bean上注释get方法,以两种方式之一使用JPA注释。

我的问题如下:注释字段和具有JPA烦恼(例如@Id)的bean方法之间是否存在差异。

例:

@Entity
public class User
{

**@ID**
private int id;

public int getId(){
return this.id;
}

public void setId(int id){
this.id=id;
}

}

-----------或-----------

@Entity
public class User
{


private int id;

**@ID**
public int getId(){
return this.id;
}

public void setId(int id){
this.id=id;
}

}

答案 1

是的,如果您为字段添加注释,Hibernate 将使用字段访问权限来设置和获取这些字段。如果对方法进行批注,则休眠将使用 getter 和 setter。Hibernate将根据注释的位置选择访问方法,据我所知,您无法混合和匹配。如果用 来注释字段,则将忽略对方法的注释,反之亦然。您还可以使用类级别注释手动设置方法@Id@Id@AccessType

事实证明,Hibernate Annotations 参考指南对于此类问题非常有用,并详细介绍了访问类型如何向下级联层次结构。


答案 2

是的,我相信您想搜索字段与属性访问:

休眠注释 - 哪个更好,字段或属性访问?

Spring 首选项是字段访问。这就是我所遵循的。


推荐