這裏介紹Hibernate 3二級緩存和session級別的緩存同樣都只對實體對象作緩存,不對屬性級別的查詢作緩存;二級緩存的生命週期和sessionFactory的生命週期是同樣的,sessionFactory能夠管理二級緩存等。緩存
AD:session
在向你們詳細介紹Hibernate 3以前,首先讓你們瞭解下Hibernate 3二級緩存,之後全面介紹Hibernate 3。分佈式
1.Hibernate 3二級緩存和session級別的緩存同樣都只對實體對象作緩存,不對屬性級別的查詢作緩存;二級緩存的生命週期和sessionFactory的生命週期是同樣的,sessionFactory能夠管理二級緩存;ide
2.sessionFactory級別的緩存,須要手動配置;全部的session能夠共享sessionFactory 級別的緩存;(通常把一些不常常變化的實體對象放到sessionFactory級別的緩存中,適合放不常常變化的實體對象。)spa
3.Hiberante 3二級緩存的配置和使用方法以下:hibernate
必須把ehcache.jar包導入,而後到Hibernate3.2的etc文件下把ehcache.xml複製到工程src目錄下(ehcache.xml裏邊的參數裏邊有詳細英文說明);code
說明:ehcache.jar是第三方法的緩存產品,hiberante只是把它作了集成,還有好多第三方Hibernate集成的緩存產品,相關說明請查閱hiberante3開發手冊;ehcache是不支持分佈應用的,若是有分佈式需求,請換成支持分佈式的二級緩存產品,hiberate3開發手冊都有相頭說明。配置方法都相似);xml
4.Hibernate 3二級緩存默認是開起的,也能夠指定開起。在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去Hibernate 3開發手冊中搜索這個關鍵字,能夠找到一級緩存和二級緩存交互使用的問題。