ホームページ > Java > &#&チュートリアル > JPA と Hibernate の N 1 問題を解決するにはどうすればよいですか?

JPA と Hibernate の N 1 問題を解決するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-11-14 18:54:02
オリジナル
744 人が閲覧しました

How to Solve the N 1 Problem in JPA and Hibernate?

JPA と Hibernate での N 1 問題への取り組み

N 1 問題は、リレーショナル データを取得するために過剰なクエリが実行されるときに発生します。たとえば、Hibernate では、最初のクエリで N 個のレコードがフェッチされ、それぞれに関連付けられたレコードを取得するには N 個の追加クエリが必要です。

この問題を解決するには、JOIN FETCH:

を利用します。この JOIN FETCH は、ポスト関連付けを積極的にフェッチし、N 1 個のクエリを排除します。

複数の子関連付けのフェッチが必要な場合は、最初のクエリで 1 つのコレクションをフェッチし、後続のクエリで他のコレクションをフェッチします。

自動検出

統合テストは、N 1 問題の検出に最適です。 db-util プロジェクトは、生成される SQL ステートメントの予想数を検証するための自動 JUnit アサートを提供します:

以上がJPA と Hibernate の N 1 問題を解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート