OrderLines のコレクションを持つ Order があります。すべての OrderLine には、Product に対する多対 1 があります。すべての注文に対して、デフォルトですべての注文をグリッドに表示する検索ウィンドウがあります。この同じウィンドウを使用して、特定の製品を含むすべての注文をフィルタリングできます。当社の顧客は、1 日あたり約 700 件の注文を生成し、注文には平均約 35 行あります。
検索ウィンドウには、Order オブジェクト自体に格納されている情報のみを表示します。ただし、特定の製品をフィルター処理すると、遅延ロードされた関係が OrderLine のコレクションに初期化され、OrderLine 内の製品に対する多対 1 の関係が初期化されます。各オーダーラインは行ごとにクエリされ、各行には製品テーブルへの個別のクエリがあります。
そのため、注文ごとに平均 35 のクエリを取得してすべての OrderLine を初期化し、さらに 35 のクエリを取得してそのオーダーラインに関連付けられた製品をフェッチします。
すべてのオーダーラインとそれに関連する製品を一度にロードする最良の方法は何ですか? fetch="join" としてオーダーラインの製品に多対 1 をマッピングできることはわかっていますが、それでもオーダーラインと製品を取得するために 35 の単一クエリが必要になります。
参考までに: 現在、すべてを遅延ロードしています。
助言がありますか?ここで Future を使用できますか?
よろしく、テッド