2011年4月19日火曜日

フェッチジョイン

JPQL において、良くある疑問としては、どのようにして JOIN 戦略を利用すれば良いか、というものがあります。

フェッチジョインという機能が用意されており、これを利用します。
http://docs.redhat.com/docs/ja-JP/JBoss_Enterprise_Application_Platform/5.0/html-single/Hibernate_Entity_Manager_Reference_Guide/index.html#queryhql-joins

なので、基本的には、クエリビューは利用しません。
それでも、どうしてもビューを利用しなければならないケースも要件としては出てくる場合がありますね。
この場合は、仕方ないので以下のような形で JPQL を騙して?利用する形になります。
http://bochi.vyw.jp/2010/11/jpadatabase-view.html

ただし、トラブルの元なので、出来るだけフェッチジョインを利用するようにしましょう。

フェッチジョインを使うことで、エンティティの関連が、LAZY フェッチを選択していたとしても、これを上書いて、EAGER フェッチで一気に読み込むことが出来ます。
一覧画面などで、LAZY フェッチでパフォーマンスが問題となるような場合に、EAGER フェッチを利用したくなるケースが出てくると思いますので、このような場合に利用すると良いでしょう。

0 件のコメント:

コメントを投稿