次のように、3 つのエンティティとそれらのネストされたコレクションがあります。エンティティ A には B のコレクションが含まれ、エンティティ B には C のコレクションが含まれます。
そして、エンティティ A の完全なオブジェクト グラフのリストをフェッチする必要があります。B のコレクションと C のコレクションの両方に対してフェッチ戦略を「サブセレクト」に設定すると、実際には B のコレクションのみが単一のクエリで読み取られます。C の各コレクションは、タイプ B のエンティティごとに個別のクエリを介して読み取られます。これは、フェッチ戦略がそこで「選択」された場合と同じです。
だから私は次のことを期待しています:
Aから~を選ぶ select ... from B where a_id in (select id from A) select ... from C where b_id in (select id from B where a_id in (select id from A))
しかし、実際には次のようになります。
Aから~を選ぶ select ... from B where a_id in (select id from A) select ... from C どこで b_id = ? select ... from C どこで b_id = ? ... select ... from C どこで b_id = ?
ネストされた副選択に制限はありますか?