2012-03-29 4 views
0

私たちは4つのテーブルを持っています分離された基準|コレクションを含むコレクション

One A to One B | 1つのB to Many C | 1つのC to Many D

すべてが双方向でレイジーフェッチに設定されています。

「B」に基づいて分離基準を作成しました。そして、熱心に熱心に、熱心に、熱心に取り出すことを試みている。

ご存知のように、CセットとDはまた、私はこれを行うにはどうすればよい

C.

で設定されているのですか?私はfetchmodeをEAGERに設定しようとしました。それは仕事をしなかったし、私はLazyInitializationExceptionを取得しています。

助けてください。

ありがとうございました。

+0

エイリアスの作成、制限の追加、フェッチモードの設定に従う必要がある順序はありますか?エイリアスをいつ作成する必要がありますか? –

答えて

1

これはあなたを助けます。

DetachedCriteria subCriteria = DetachedCriteria.forClass(A.class, "_A"); 

subCriteria.createAlias("_A.B", "_B"); 
subCriteria.createAlias("_B.C", "_C"); 
subCriteria.createAlias("_C.D", "_D"); 
subCriteria.add(Restrictions.eq("_D.id", 10)); 
subCriteria.setProjection(Projections.property("_D.id")); 

criteria = subCriteria.getExecutableCriteria(session); 

List list = criteria.list(); 
関連する問題