SessionFactory 一致,由其管理SessionFactory 級別,所有 Session 共享必須導入 ehcache.jar,並將 Hibernate 3.2 etc 目錄下的 ehcache.xml 複製至項目 src 目錄。Ehcache 為第三方緩存產品,Hibernate 僅做集成;不支持分布式,若有集群需求請換用支持分布式的緩存實現(如 Redis、Memcached)。
在 hibernate.cfg.xml 中配置:
<property name="hibernate.cache.use_second_level_cache">true</property>
<property name="hibernate.cache.provider_class">
org.hibernate.cache.EhCacheProvider
</property>
兩種方式擇一:
.hbm.xml 中添加 <cache usage="read-only"/>hibernate.cfg.xml 中聲明:<class-cache class="com.zzz.hibernate.ClassT" usage="read-only"/>
read-only 為常用策略,其他策略(read-write、nonstrict-read-write、transactional)請參閱 Hibernate 3 開發手冊。
CacheMode 控制一級緩存與二級緩存的交互行為(如 GET、PUT、REFRESH、IGNORE),詳細用法可在開發手冊中搜索該關鍵字。