を満たしている場合、私は2つのテーブルを持っている親とすべての子をフェッチ子供は10歳以上で、親は結婚しています。 つまり、 P1に2人の子供、c1 age = 11、c2 = 8があり、p1.marritalStatusが結婚しているとします。
したがって、私のクエリはP1をc1とc2でフェッチする必要があります。Hibernateは子供たちのいずれかが基準
今はP1をc1でフェッチするだけです。 No c2。そして、p1.getChildren()はc1だけを返します。
私のHQLは、次のようになります。私は実行
第一クエリ:p個のLEFTはどこc.age cとp.childrenをフェッチ登録しようとして
parentIDList =親IDのリストを取得するには、親からp.parentIDを選択> 10とp.marritalStatus =「
を「結婚し」私は(NOは子テーブルに参加し
第二のクエリで親表の第二のクエリを正しい親IDリスト パスの親ID(P1この場合)のリストを取得します) "親からPへp.parentID IN(parentIDList)"FetchTypeはEAGERなので、私は親をフェッチするときにhibernateがすべての子をフェッチすると思っています。
2番目のクエリで子テーブルと結合しようとしましたが、望ましい結果が得られませんでした。
私の第1のクエリは正常に動作し、正しい親リストを取得します。第2のクエリを実行すると、私の問題はすべて子どもになっていません。それを解決する方法?
私はできません - 子供から手をつないでください。私は親だけを得ることができ、親からの子供だけです。 – DaenKhaleesi
なぜですか?あなたは子供に対してフィールド/関係として定義されています。 – javydreamercsw