私は次の構造を持っています
ストア
リベート リベート
メタデータ リベート
コミッション
つまり、関係は次のようになります -
Store -> Rebate は 1 対多の関係です Rebate -> RebateMetadata は 1 対 1 のマッピングです Rebate -> RebateCommission は 1 対 1 のマッピングです
私のクエリは、すべてのストアをロードすることです。そして、すべてのリベート、メタデータ、コミッションをロードします。
私が使用しているHQLは次のとおりです。
ストアとしてストアからストアを選択します。
グラフ全体ができるだけ少ない SQL でロードされることを期待しています。n+1 選択の問題を防ぐために、Store->Rebate 間でサブセレクト フェッチを使用します。
ただし、RebateMetadata と RebateCommission を取得するために、複数の個別の選択 (結合を使用) が起動されていることがわかります。これを最小限に抑えるにはどうすればよいですか?
また、2次キャッシュはONにしていますが、QueryCacheはOFFにしています。