常見的緩衝組件
在預設情況下,hibernate會使用EHCache作為二級緩衝組件。但是,可以通過設定hibernate.cache.provider_class屬性,指定其他的緩衝策略,該緩衝策略必須實現org.hibernate.cache.CacheProvider介面。
通過實現org.hibernate.cache.CacheProvider介面可以提供對不同二級緩衝組件的支援,此介面充當快取區外掛程式與Hibernate之間的適配器。 EHcache環境的配置
在Hibernate基本環境基礎上繼續配置,Hibernate基本環境的搭建請參考之前的博文MyEclipse中搭建hibernate環境 一、添加jar
EHcache屬於第三方外掛程式,使用時需要添加相應的jar包,而這個jar包就在我們下載的Hibernate開發套件之中,我下載的是hibernate-release-5.0.1.Final,如何下載開發包和原始碼請參考如何從官網下載hibernate源碼與jar包教程,對應的EHcache所需jar在hibernate-release-5.0.1.Final\lib\optional\ehcache路徑下
把它們添加至工程的lib目錄下,並Build Path 二、在主設定檔中開啟二級緩衝
Hibernate預設情況下二級緩衝是關閉的,開啟需要在主設定檔中添加
<property name="hibernate.cache.use_second_level_cache">true</property> 三、註冊二級快取區域工廠
在主設定檔中配置
<property name="hibernate.cache.region.factory_class">net.sf.ehcache.hibernate.EhCacheRegionFactory</property>
這個配置的值不是固定的,取決於你的Hibernate版本
它的值就是這個類的全名(沒有class) 四、添加ehcache.xml檔案
這個檔案在剛剛添加的ehcache-core-2.4.3.jar中,擷取方法是:解壓這個jar檔案
拷貝ehcache-failsafe.xml檔案並把檔案名稱修改為ehcache.xml至src檔案夾下
五、配置需要緩衝的class
方法一:在對應檔中(xxx.hbm.xml),class標籤下添加<cache usage="read-only"/>
方法二:在主設定檔(hibernate.cfg.xml)中Mapping標籤下面添加<class-cache usage="read-only" class="com.hibernate.beans.Student"/> 六、配置需要緩衝的set集合
方法一:在對應檔中(xxx.hbm.xml),set標籤裡key標籤前面添加<cache usage="read-only"/>
方法二:在主設定檔(hibernate.cfg.xml)中Mapping標籤下面添加<collection-cache usage="read-only" collection="com.hibernate.beans.Student.courses"/>