我有一个简单的hibernate实体。
但每当我得到一个先前用值设置的特定值时,它将返回null。
当我设置代码..并看看GETVALUE做了什么..最可怕的事情是......
它会进入另一种方法(GET)!该死的时候,我正在打字,我的头发是站着的..
有没有人对此有任何简单的解释?
以下只是一个简单的例子..例如,当它getName()..它将进入getAge()..完全令人震惊
public class SimplePojo {
@Id
@Column(name = "NAME", length = 10, nullable = false)
private String name;
@Column(name = "AGE", length = 10, nullable = false)
private String age;
@Column(name = "GENDER", length = 10, nullable = false)
private String gender;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
}
答案 0 :(得分:2)
没有幽灵般的幽灵。 Hibernate正在幕后使用一个代理对象,它将连接到您的数据库,以便对该对象进行惰性字段初始化。
如果要禁用此功能,只需将加载此对象的HBM配置从lazy="true"
更改为lazy="false"
。请注意,通过执行此操作,Hibernate将在第一个缓存级别加载所有数据和关联,从而达到您的应用程序内存。
更多信息: