rio*_*son 5 java annotations hibernate many-to-one
我有一个关于Hibernate的问题.
我有两个具有多对一关系的对象:
例如:对象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...
}
Run Code Online (Sandbox Code Playgroud)
对象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....
}
Run Code Online (Sandbox Code Playgroud)
我试图让这个例子尽可能简单.我的问题是Person上的关联对象(Group)可以为null.目前,当我加载一个特定的Person并抛出异常时,Hibernate会加载一个Group实例,因为它无法将exampleFieldId设置为null(因为它是一个基本类型).
我可以通过将long更改为Long来停止此错误但是,我会认为Person上的Group对象应该为null,因此首先没有加载Group对象?
有没有人知道Hibernate是否加载了相关对象而不管它是否为空,或者我是否错过了一些重要的注释?
谢谢
正如Firo所说:
你有没有禁用延迟加载并设置fetchmnode加入因为NHibernate必须获取它们来决定它是否应该使它无效并且它不能决定只有一个id
这似乎与您遇到的问题相同,即使它在NHibernate中也是如此.值得一试!
为什么Hibernate会尝试加载"not-found = ignore"关联?
编辑:可能是你错过了@Fetch(FetchMode.JOIN)
.
归档时间: |
|
查看次数: |
1721 次 |
最近记录: |