特定のサブタイプを持つ JPA で表されるユーザー オブジェクトがあります。たとえば、ユーザー、サブクラスの管理者、および別のサブクラスのパワー ユーザーについて考えてみてください。
10 万人のユーザーがいるとしましょう。パフォーマンスを向上させるために、Ehcache を使用して第 2 レベルのキャッシュを正常に実装し、それが機能していることを検証しました。 http://docs.jboss.org/hibernate/core/3.3/reference/en/html/performance.html#performance-cache
load メソッドを呼び出すと機能することはわかっています (つまり、SQL クエリを呼び出すのではなく、キャッシュからオブジェクトをロードします)。これは、休止状態レベルでログを記録し、より高速であることも確認して確認しました。
ただし、実際にはすべてのユーザーのサブセットを選択したいと考えています...たとえば、パワーユーザーの数を数えたいとしましょう。
さらに、私のユーザーには関連付けられた ZipCode オブジェクトがあります... ZipCode オブジェクトも 2 番目のレベルでキャッシュされます...私が実際にやりたいことは、次のようなクエリを実行できるようにすることです...私は New に何人のパワー ユーザーを持っていますか?ヨーク州...
ただし、私の質問は...データベースではなく第2レベルのキャッシュにヒットするクエリを作成するにはどうすればよいですか。私の第 2 レベルのキャッシュは読み取り/書き込み用に構成されていることに注意してください...新しいユーザーがシステムに追加されると、自動的にキャッシュに追加されるはずです...また...クエリキャッシュを簡単に調査したことに注意してください。これは複数回実行されるクエリであるため、適用できるかどうかはわかりません...私の問題は、とにかくデータが第2レベルのキャッシュにある必要がある場合です。クエリを書いてもデータベースはヒットしません。
乾杯、ブライアン