ホームページ  >  記事  >  Java  >  JPA と Hibernate の JOIN と JOIN FETCH: それぞれをいつ使用する必要がありますか?

JPA と Hibernate の JOIN と JOIN FETCH: それぞれをいつ使用する必要がありますか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-11 08:54:02300ブラウズ

JOIN vs. JOIN FETCH in JPA and Hibernate: When Should I Use Each?

JPA と Hibernate での結合と結合フェッチ

JPA と Hibernate を使用する場合、一般的に使用される 2 種類の結合は JOIN と JOIN FETCH です。それらの違いと、各タイプの使用が適切な場合について調べてみましょう。

クエリ 1: JOIN

このクエリは、少なくとも 1 つの部門が関連付けられているすべての従業員エンティティを取得します。このクエリの結果には、遅延ロードされた Employee オブジェクトとそのDepartment オブジェクトが含まれます。これは、Hibernate が最初のクエリ中にではなく、初めてアクセスされたときに、Department オブジェクトを取得することを意味します。

クエリ 2: JOIN FETCH

JOIN とは異なり、JOIN はFETCH クエリは、従業員エンティティに関連付けられた部門オブジェクトを積極的に読み込みます。これにより、Department オブジェクトは後で遅延ロードされるのではなく、最初のクエリ中に取得されます。

適切なタイプの選択

JOIN と JOIN FETCH の選択は、特定のアプリケーション要件によって異なります。

  • 取得した従業員ごとに部門オブジェクトが必要になると確信している場合、JOIN FETCH はこのオプションは、Department オブジェクトをフェッチするための後続のクエリの必要性を排除するため、より効率的なオプションです。
  • すべての Employee エンティティにDepartment オブジェクトが必要かどうか不明な場合は、不必要なオーバーヘッドを避けるために JOIN を使用することをお勧めします。

追加の考慮事項

  • 間の @OneToMany マッピングの場合従業員と部門は FetchType.EAGER で構成されており、JOIN を使用しても、部門オブジェクトが積極的にロードされます。
  • JOIN FETCH は、結合されたエンティティの WHERE 条件と組み合わせると、より効率的な処理が可能になるため便利です。複数の JOIN よりもクエリを実行します。

以上がJPA と Hibernate の JOIN と JOIN FETCH: それぞれをいつ使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。