ページネーションを行うユースケースがあります。もちろん、ユーザーが移動すると、同じページに再びアクセスします。ページの主キーのセットはすでにあります。
また、同様の検索は、第1レベルと第2レベルのキャッシュにすでにロードされているエンティティの一部にヒットします。
主キーのバッチのクエリを実行すると、Hibernateは、データベースがキャッシュヒットした場合にデータベースを呼び出さないようにするのに十分賢くありません。したがって、最初にプライマリレベルとセカンダリレベルのキャッシュに低レベルのAPIを使用して、これを修正したいと思います。
したがって、たとえば、次の主キーをロードする場合:1、2、3
2がすでに第1レベルのキャッシュにある場合は、1と3でデータベースを呼び出したいだけです。
そのため、session.peek(MyEntity.class、2)のようなAPIを探しています。このAPIでは、peek関数が見つからない場合はnullを返し、第1レベルまたは第2レベルのキャッシュで見つかった場合はエンティティを返します。
存在する場合は、さらに低レベルのAPIからこの関数を作成してもかまいません。