私は Hibernate と非常に単純な Criteria API を使用していますが、複雑なデータ リンクを使用しています。エンティティを読み込んだ後、ログに次の SQL が表示されることがあります。
select * from ( select this_.ID as ID7_0_, from AAA.CUSTOMER this_ where this_.STATUS=? and this_.ID in (select this_.ID_CUSTOMER as y0_ from AAA.CUSTOMER_CONTACT this_ where this_.ID_CONTACT in (select this_.ID as y0_ from AAA.CONTACT this_ where this_.PHONE_NUMBER=?) and this_.ROLE=?) ) where rownum <= ?
しかし、Hibernate が外部キーを介してリンクせずにサブセレクトを生成することを決定した理由がわかりません (それらはすべて hbm.xml でポイントされています)。サブセレクトがあるのはなぜですか?fetch="select" または fetch="join" のみを使用します。
何か案は?