我有一个关于休眠的问题。
我有两个具有多对一关系的对象:
例如:对象 1:
public class Person {
@Basic
@Column(length = 50)
protected String name;
@NotFound(action=NotFoundAction.IGNORE)
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "groupCode", referencedColumnName = "code", updatable=false)
protected Group group;
...all the getters and setters...
}
对象 2:
public class Group {
@Id
@Basic
@Column(length = 3, nullable = false)
protected String code;
@Basic
@Column(length = 30, nullable = false)
protected String groupName;
@Basic
@Column(precision = 15, scale = 0)
protected long exampleFieldId;
...rest of code....
}
我试图使这个例子尽可能简单。我的问题是 Person 上的关联对象(组)可以为空。目前,当我加载特定的 Person 并引发异常时,Hibernate 会加载 Group 的实例,因为它无法将 exampleFieldId 设置为 null(因为它是原始类型)。
我可以通过将 long 更改为 Long 来停止此错误,但是,我会认为 Person 上的 Group 对象应该为空,因此首先没有加载 Group 对象?
有谁知道 Hibernate 是否加载关联的对象而不管它是否被允许为空,或者我是否错过了一些重要的注释?
谢谢