Hibernate二级缓存の設定方法を教えてください
ハイバネーションの2次キャッシュは、以下の方法で構成できます。
<property name="hibernate.cache.use_second_level_cache">true</property>
<property name="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</property>
hibernate.cache.use_second_level_cache属性は2次キャッシュを有効化するために使用され、 hibernate.cache.region.factory_class属性は2次キャッシュの実装クラスを指定するために使用されます。
- ネイティブの日本語に言い換えます。1つオプションが必要です。:@Cacheable
@Entity
@Cacheable(true)
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class User {
// ...
}
または XML 設定ファイルで 要素を使用し 2 次キャッシュを設定することもできます。例:
<class name="com.example.User" table="user">
<cache usage="read-write"/>
<!-- ... -->
</class>
@Cacheableアノテーションやエレメントのusage属性を利用してキャッシュの使用方針を指定しています。
- セッションファクトリ
// 创建缓存管理器对象
CacheManager cacheManager = new EHCacheManager();
// 配置 Hibernate SessionFactory
SessionFactory sessionFactory = new Configuration()
.setProperty("hibernate.cache.region.factory_class", "org.hibernate.cache.ehcache.EhCacheRegionFactory")
.setCacheManager(cacheManager)
.configure()
.buildSessionFactory();
カスタムのキャッシュ実装を使用したり、より高度なキャッシュポリシーを設定する場合にこの手法を使用できます。
Hibernateのバージョンによって2次キャッシュの設定方法は異なる点に注意してください。上記の例はHibernate 5.x系の設定例であり、実際の環境と利用しているHibernateのバージョンに合わせた設定を行ってください。