SubSelect のeager fetchには非常に満足していますが、最近問題が発生しました。ここに私のシナリオがあります: 多くの子テーブルに親テーブルがあります。私のhqlは単純な「親から」で、関連する子を持つ500人の親を提供する必要があります..
- 最初の 1 つの要求: Hibernate は 2 つのクエリを生成します。期待通り、とても素晴らしいです!!
- 1 秒のリクエスト: 500 個の親の各アイテムは第 2 レベルのキャッシュではなく、親に対して 1 つのクエリを生成し、親ごとに子を取得するためにさらに 500 個のクエリを生成します。どうして ????
- OK、getChildren メソッドに EHCache Read-write を適用しました。Hiberate は、2 つのクエリのみを生成するように戻ります。ただし、データが変更されていない場合にのみ、データが変更された場合、Hibernate は 501 クエリを生成し続けます。
何よりも、私には意味がありません。私は常に subselect に対して2つのクエリしか期待していません。私を助けてください!私はとても落ち込んでおり、マネージャーは純粋な JDBC SQL に戻ることを考えています。