Java 访问引用实体字段的正确方法
我不熟悉Hibernate,我今天在一个新项目中看到了这段代码:Java 访问引用实体字段的正确方法,java,hibernate,jpa,Java,Hibernate,Jpa,我不熟悉Hibernate,我今天在一个新项目中看到了这段代码: 公共抽象类验证代码{ @列(name=“userId”,updateable=false,insertable=false) @吸气剂 @塞特 私有长用户ID; @许多酮 @JoinColumn(name=“userId”,referencedColumnName=“userId”) @吸气剂 @塞特 私有主用户; // .... } 我的问题是,像这样声明userId字段是否多余?我们不能只使用一个getter? 或者,在某些
公共抽象类验证代码{
@列(name=“userId”,updateable=false,insertable=false)
@吸气剂
@塞特
私有长用户ID;
@许多酮
@JoinColumn(name=“userId”,referencedColumnName=“userId”)
@吸气剂
@塞特
私有主用户;
// ....
}
我的问题是,像这样声明userId
字段是否多余?我们不能只使用一个getter
?
或者,在某些情况下,例如如果我们将用户的获取类型设置为Lazy
,我们可以访问userId
字段而不获取用户实体,那么它的值是多少
你有什么建议?当你看到这个多余的东西时,我认为你是对的。
@ManyToOne
注释指定了JoinColumn(name=“userId”,…
,这意味着存储ValidationCode
实体的表有一个列userId
,该列将与存储MasterUser
的表(以及名为userId
的列)连接。
另一方面,userId
属性也映射到存储ValidationCode
的表上的userId
列
现在,老实说,我不知道这是否有效。如果它真的有效,那么这些属性会发生什么。而且两者都有
@Setter
,这会让事情变得更糟。您认为userId
的声明在哪方面是多余的?您是指在字段上有一个@Column
注释这一事实吗>userId
而不是在gettergetUserId()上
?似乎是@code\u机械师的重复谢谢,我从帖子的对话中学到了很多。关闭这个,因为它类似于引用的一个。是的,两个@Setter
的事情很可怕。出于某种原因,一旦更新这样的实体,我必须为用户ID
和用户
设置新的值,如果只更新userId
将不会更新。