Hibernate フレームワークのクエリ キャッシュ機能は、クエリ結果をキャッシュすることでクエリのパフォーマンスを向上させ、クエリの繰り返し実行を回避できます。その動作原理は、セッション レベルとグローバル レベルを含む 2 レベルのキャッシュであり、キャッシュは @Cacheable アノテーションによって有効になります。キャッシュされたデータは、明示的にクリアされるか期限切れになるまで、すべてのセッションで共有されます。キャッシュを明示的にクリアするメソッドには session.clear() または session.evict() があり、クエリ結果が変化すると透過的なクリアが自動的に実行されます。
#Hibernate フレームワークのクエリ キャッシュ
概要
クエリ キャッシュは Hibernate Aクエリ結果をキャッシュすることでクエリのパフォーマンスを向上させる、フレームワークによって提供される機能。後続のクエリがキャッシュにヒットすると、Hibernate はクエリを再実行する代わりに、結果をキャッシュから直接返します。動作原理
Hibernate のクエリ キャッシュは、以下を含む 2 レベルのキャッシュです。実際的なケース:
Employee エンティティがあり、特定の従業員を検索するクエリを頻繁に実行するとします:
Query query = session.createQuery("from Employee where id = :id"); query.setParameter("id", employeeId); List<Employee> employees = query.list();このクエリの結果をキャッシュするには、
@Cacheable を使用できます。 注:
@Entity @Cacheable public class Employee { // ... }このようにして、同じクエリを実行すると、Hibernate は最初に結果を検索します。キャッシュ。キャッシュに結果がない場合にのみクエリを実行し、結果をキャッシュします。
キャッシュのクリア
Hibernate キャッシュをクリアするには、主に 2 つの方法があります: または
session.evict() メソッドを使用します。
パフォーマンスへの影響
クエリ キャッシュにより、特に頻繁に実行されるクエリのパフォーマンスが大幅に向上します。ただし、注意すべき点がいくつかあります。以上がHibernate フレームワークではクエリ キャッシュはどのように機能しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。