Ghostly Pojo方法

时间:2013-09-20 17:37:59

标签: java hibernate

我有一个简单的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;
    }

}

1 个答案:

答案 0 :(得分:2)

没有幽灵般的幽灵。 Hibernate正在幕后使用一个代理对象,它将连接到您的数据库,以便对该对象进行惰性字段初始化。

如果要禁用此功能,只需将加载此对象的HBM配置从lazy="true"更改为lazy="false"。请注意,通过执行此操作,Hibernate将在第一个缓存级别加载所有数据和关联,从而达到您的应用程序内存。

更多信息: