0

私は単純な休止状態のエンティティを持っています。

しかし、以前に値で設定された特定の値を取得するたびに、null が返されます。

私がコードに設定したとき..そしてGETVALUEが何をするかを見る..最も恐ろしいことは..

別の METHOD(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;
    }

}
4

1 に答える 1

2

幽霊のようなポジョはありません。Hibernate は、このオブジェクトの遅延フィールド初期化のためにデータベースに接続するプロキシ オブジェクトをバックグラウンドで使用しています。

これを無効にする場合は、このオブジェクトをロードする HBM 構成を から に変更するだけlazy="true"ですlazy="false"。これを行うと、Hibernate はすべてのデータと関連付けを最初のキャッシュ レベルにロードし、アプリケーション メモリにヒットすることに注意してください。

より詳しい情報:

于 2013-09-20T17:41:57.210 に答える