歡迎您光臨本站 註冊首頁

使用Hibernate 3二級緩存的四個經驗

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0

1.Hibernate3的二級緩存和session級別的緩存一樣都只對實體對象做緩存,不對屬性級別的查詢做緩存;二級緩存的生命周期和sessionFactory的生命周期是一樣的,sessionFactory可以管理二級緩存;

2.sessionFactory級別的緩存,需要手動配置;所有的session可以共享sessionFactory 級別的緩存;(一般把一些不經常變化的實體對象放到sessionFactory級別的緩存中,適合放不經常變化的實體對象.)

3.Hiberante3二級緩存的配置和使用方法如下:

必須把ehcache.jar包導入,然後到Hibernate3.2的etc文件下把ehcache.xml複製到工程src目錄下(ehcache.xml裡邊的參數裡邊有詳細英文說明);

說明:ehcache.jar是第三方法的緩存產品,hiberante只是把它做了集成,還有好多第三方hibernate集成的緩存產品,相關說明請查閱hiberante3開發手冊;ehcache是不支持分佈應用的,如果有分散式需求,請換成支持分散式的二級緩存產品,hiberate3開發手冊都有相頭說明.配置方法都類似);

4.Hibernate3的二級緩存默認是開起的,也可以指定開起.在hibernate.cfg.xml 文件下配置如下:

*修改hibernate.cfg.xml文件,開戶二級緩存;

<property name=」hibernate.cache.use_second_level_cache」>true</property>

*指定二級緩存產品的提供商;

<property name=」hibernate.cache.provider_class」>
org.hibernate.cache.EhCacheProvider

</property>

要讓那些實體使用二級緩存,在hibernate.cfg.xml配置文件中加入:

<!—

讓這個實體用二級緩存 也可以在實體中映射文件去配置即:

<cache usage="read-only"/>

-->

<class-cache class=」com.zzz.hibernate.ClassT」 usage=」read-only」/>

Read-only一般使用這個策略,其它的hibernate3開發手冊中也有詳細介紹;

CacheMode去hibernate3開發手冊中搜索這個關鍵字,可以找到一級緩存和二級緩存交互使用的問題.


[火星人 ] 使用Hibernate 3二級緩存的四個經驗已經有537次圍觀

http://coctec.com/docs/java/show-post-61098.html