[解決済み】JPAとHibernateを使用した場合のJOINとJOIN FETCHの違いとは?
質問
どこで通常のJOINを使用し、どこでJOIN FETCHを使用するかを理解するのを助けてください。例えば、以下の2つのクエリがあるとします。
FROM Employee emp
JOIN emp.department dep
そして
FROM Employee emp
JOIN FETCH emp.department dep
両者に違いはあるのでしょうか?もしあるならば、どのような場合にどちらを使うべきでしょうか?
解決方法は?
この 2 つのクエリでは、JOIN を使用して、少なくとも 1 つの部門に関連付けられているすべての従業員を照会しています。
しかし、違いは、最初のクエリでは、HibernateのEmployesのみを返していることです。2番目のクエリでは、Employesを返しています。 と 関連するすべての部門
したがって、2番目のクエリを使用すると、各従業員の部署を確認するために、再度データベースを叩く新しいクエリを実行する必要がありません。
2番目のクエリは、各従業員の部署が必要であることが確実な場合に使用できます。部署が必要ない場合は、最初のクエリを使用します。
WHERE条件を適用する必要がある場合は、このリンクを読むことをお勧めします(おそらく必要なもの)。 JPQLのquot;where;句を含むjoin fetch;をJPA 2 CriteriaQueryとして適切に表現するにはどうすればよいですか?
更新
を使用しない場合
fetch
が返され続ける場合、EmployeeとDepartmentの間のマッピング(
@OneToMany
で設定されています。
FetchType.EAGER
. この場合、任意の HQL (
fetch
を使用したクエリでは
FROM Employee
は、すべての部門を表示します。すべてのマッピングは、*ToOne (
@ManyToOne
と
@OneToOne
) はデフォルトでEAGERになっています。
関連
-
[解決済み] Spring Data JPAにおけるCrudRepositoryとJpaRepositoryのインターフェースの違いは何ですか?
-
[解決済み] Firebase クラスにシリアライズするプロパティが見つからない
-
[解決済み] Java: getInstanceとStaticの比較
-
[解決済み] この2回(1927年)を引き算すると、なぜおかしな結果になるのでしょうか?
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] JavaBeanとは何ですか?
-
[解決済み] StringBuilderとStringBufferの違いについて
-
[解決済み] JOINとINNER JOINの違いについて
-
[解決済み】「INNER JOIN」と「OUTER JOIN」の違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Jdbctemplate の文字列に対するクエリです。EmptyResultDataAccessException: 不正な結果サイズ:期待値1、実際0
-
[解決済み] パラメータ[変数]の不正な修飾子;finalのみが許可される[closed]。
-
[解決済み] java.util.concurrent.ExecutionException 例外をどのように処理しますか?
-
[解決済み] Java UnknownFormatConversionException
-
[解決済み] Java Swingで複数のボタンに対して複数のActionListenersを追加する方法
-
[解決済み] Apache Camelのログに簡単なテキストを記録する
-
[解決済み] タイプの安全性。アンチェック・キャスト
-
[解決済み] init-paramとcontext-param
-
[解決済み] java.sql.SQLRecoverableException: IO エラーです。NL Exceptionが発生しました
-
[解決済み] x--やx++はここで何をするのですか?