Hibernateの2次キャッシュを定義する方法
ハイバネーションで2次キャッシュを構成するには、以下の手順に従ってください。
- Hibernateのバージョンを確認し、2次キャッシュ機能がサポートされているか確認してください。Hibernate 5.xではデフォルトでサポートされていますが、Hibernate 4.xでは追加の設定が必要です。
- Hibernateの設定ファイル(通常はhibernate.cfg.xml)で以下を設定します。
- true org.hibernate.cache.ehcache.EhCacheRegionFactory
- この2つの設定項目は、2次キャッシュの有効化と、キャッシュ実装を実現するクラスの指定します。ここではEhcacheをキャッシュ実装として使用します.
- 実体クラスのマッピングファイル(通常は.hbm.xmlファイル)に以下の構成を追加する:
-
…
…
- この設定項目は、このエンティティクラスの 2 次キャッシュが有効かどうか、およびキャッシュのアクセスモードを指定します。usage プロパティは、以下の値をとることができます。
- データ整合の要件が低い場合に適した、厳密性が低い読み書きモード。
- 読み書きモードは、データの整合性要件が高い場合に適しています。
- リードオンリー:データ整合性に求めるレベルが低く、頻繁に読み取る状況に適しています。
- キャッシュの最大容量や有効期限などの具体的なプロパティを設定するには、hibernate.cfg.xml に次のような設定を追加します。
- /ehcache.xml
- プロジェクトResourcesディレクトリにehcache.xml設定ファイルを追加して、具体的な設定内容はEhcacheのドキュメントを参照してください。
2次キャッシュの実装の際には、データの不整合を防ぐために、キャッシュの失効ポリシーとトランザクションの分離レベルを考慮する必要がある。