Hibernate4二級緩存配置

Hibernate4二級緩存配置

1、當然首先引入EHCache相關的jar包

 

這些包不需要另外下載,在Hibernate官方網站下載Hibernate4.1.7的壓縮包(如:hibernate-release-4.1.7.Final.zip)解壓,引入hibernate-release-4.1.7.Final\hibernate-release-4.1.7.Final\lib\optional\ehcache目錄下的ehcache-core-2.4.3.jar、hibernate-ehcache-4.1.4.Final.jar、slf4j-api-1.6.1.jar三個jar包即可(就是添加到referenced libraries下)。

 

2、在項目classpath的根目錄下面寫好EHCache的配置文件ehcache.xml

 

此配置文件可以直接到HIBERNATE_HOME\project\etc\ehcache.xml拷貝到src目錄下即可。(裏面有3個例子,只需要一個用默認緩存配置就可以)

Html代碼  

1. <?xml version="1.0" encoding="UTF-8"?>   

2. <ehcache>   

3.  <diskStore path="java.io.tmpdir"/>   

4.   <defaultCache   

5.    maxElementsInMemory="10000" <!-- 緩存最大數目 -->   

6.    eternal="false" <!-- 緩存是否持久 -->   

7.    overflowToDisk="true" <!-- 是否保存到磁盤,當系統當機時-->   

8.    timeToIdleSeconds="300" <!-- 當緩存閒置n秒後銷燬 -->   

9.    timeToLiveSeconds="180" <!-- 當緩存存活n秒後銷燬-->   

10.    diskPersistent="false"   

11.    diskExpiryThreadIntervalSeconds"120"/>   

12. </ehcache>   

3、在Hibernate配置文件裏面啓用EHCache

說明一下:如果不設置“查詢緩存”,那麼hibernate只會緩存使用load()方法獲得的單個持久化對象,如果想緩存使用 findall()、list()、Iterator()、createCriteria()、createQuery()等方法獲得的數據結果集的話, 就需要在配置文件中設置hibernate.cache.use_query_cache true 纔行

Html代碼  

1. <!-- 開啓二級緩存 -->  

2. <property name="cache.use_second_level_cache">true</property>  

3.  <!-- 開啓查詢緩存 -->    

4. <property name="hibernate.cache.use_query_cache">true</property>                   

5. <!-- 配置RegionFactoryEhcacheRegionFactory -->  

6. <property name="cache.region.factory_class">org.hibernate.cache.EhCacheRegionFactory</property>  


4、配置哪些實體類的對象需要二級緩存

在Hibernate配置文件hibernate.cfg.xml中統一配置(推薦)

 

注意,這個<class-cache>標籤必須放在<mapping>標籤的後面!!

Html代碼  

1. <!--   

2.         配置哪些實體類的對象需要二級緩存  

3.         usage屬性爲緩存策略  

4. -->  

5. <class-cache usage="read-only" class="com.ru.domain.Student"/>  

 

說明一下:如果不設置“查詢緩存”,那麼hibernate只會緩存使用load()方法獲得的單個持久化對象,如果想緩存使用 findall()、list()、Iterator()、createCriteria()、createQuery()等方法獲得的數據結果集的話, 就需要在配置文件中設置hibernate.cache.use_query_cache true 纔行

Html代碼  

1. <!-- 開啓查詢緩存 -->    

2. <property name="hibernate.cache.use_query_cache">true</property>  

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章