2012-05-01 15 views
3

インスタンス数はutil.Listです。各インスタンスには別のコレクションがあります。コレクションのすべてのインスタンスを初期化したい。ここでそれはどうやっているのですか。Hibernateでコレクションのコレクションを初期化するには

Hibernate.initialize(parentList); 

しかし、セッションが終了したとき。 parentListのオブジェクトのプロパティを取得できます。しかし、そのコレクションのインスタンスのプロパティは取得できません。私が初期化する方法は間違っているか、他の問題がありますか?またはすべてのインスタンスを初期化する方法。

答えて

10
Hibernate.initialize(parentList); 

はリスト内のオブジェクトをリスト内の関連付けなしで初期化します。ドキュメントから

注:これは、プロキシオブジェクトまたはコレクションの使う初期を保証します。 コレクションの中の要素が で初期化/マテリアライズされることは保証されていません。

編集:私は1 StudentエンティティとエンティティがCourseエンティティのリストを持っているすべての学生を持っていたら、コメント

セイあたりとして。そして、学生のリストは次のように初期化することができます。

for (Student student : studentList) { 
    Hibernate.initialize(student.getCourses()); 
} 
+1

ありがとうございました。その後、それらを初期化する方法はありますか? –

+1

注:**直接プロキシは初期化されています。プロキシのプロキシが必要な場合は、前述のように 'initialize()'も呼び出さなければなりません。ありがとう –

+0

これをチェックできますか? http://stackoverflow.com/questions/40392996/does-hibernate-initialize-requires-a-time-delay私の問題は、デバッグポイントを追加して数秒待つだけで私のリストを取得する場合です。それ以外の場合は動作していません – Ratha

0

動作するようにきれいな方法、遅延ロードを使用し続けると、逆に値オブジェクトとの永続オブジェクトからデータを転送する値オブジェクトのデザインパターンを使用することです。

関連する問題