0

私は、別のエンティティと多対1の関係にあるエンティティのリストをロードする必要があるクエリに一緒に取り組んでいます。このリスト自体は、別のエンティティと多対1の関係にあります。アソシエーションによってロードされたデータは必要ありませんが、クエリログを確認すると、JPAが自動的にデータをロードしていることがわかりました。私の理解では、これは、私のJPA実装では、コレクションの場合のように、関連付けられたエンティティを表すプロキシを作成できないために発生します。

私の実体が、サンドイッチと多対1の関係にあるハムであるとしましょう。ハムのリストを取得するための私のJPQLは次のようになります。

Select H from Ham H

JPQLでHamとサンドイッチの関連付けを明示的に無視して、結合フェッチに頼らずにデータベースが余分な一連の選択サンドイッチクエリでいっぱいにならないようにする方法はありますか?

4

1 に答える 1

2

ManyToOne 関係を定義するときは、「遅延読み込み」としてマークします (アノテーションを使用すると、次のようになります)。

@ManyToOne(fetch=FetchType.LAZY)

そうすれば、上記の PQL は期待どおりに機能します。ただし、Sandwich をロードする必要がある場合は、FETCH JOIN を追加する必要があります。

于 2012-07-26T19:00:08.187 に答える