我正在使用hibernate,使用play framework 1.2.4
假设我有一个名为Person的模型和一个名为IdentityInfo的模型,关系是一个人只能有一个身份信息。
我想在IdentityInfo提取上使用延迟提取。这是我的模型代码:
public class Person {
// ... some code
@OneToOne(fetch = FetchType.lazy)
@JoinColumn(name = "info_id_fk")
private IdentityInfo info = null;
public IndentityInfo getInfo(){
return this.info;
}
public void setInfo(IdentityInfo info){
this.info = info;
}
}
public class IdentityInfo {
// ... some code
public String xxx = null;
public String getXxx(){
return this.xxx;
}
public void setXxx(String xxx){
this.xxx = xxx;
}
}
但这是问题(很奇怪):
我有个人名单,我需要查看所有人物的身份信息
并且某些人物的身份可以正确加载(人有一个相应的身份信息)。
更加具体,
当我使用 java reflect 来获取此人的身份信息时,有时info的属性为null(但事实并非如此)。
但是当我只使用person.info.getXxx()
时,属性的值就出现了。
并且它没有任何错误消息。程序正常运行。
任何人都有任何想法?
答案 0 :(得分:0)
为什么setter方法没有参数?
试试这个
public void setInfo(IndentityInfo info)
{
Hibernate.initialize(info);
this.info = info;
}