淺析Hibernate 3二級(jí)緩存基礎(chǔ)
在向大家詳細(xì)介紹Hibernate 3之前,首先讓大家了解下Hibernate 3二級(jí)緩存,以后全面介紹Hibernate 3。
1.Hibernate 3二級(jí)緩存和session級(jí)別的緩存一樣都只對(duì)實(shí)體對(duì)象做緩存,不對(duì)屬性級(jí)別的查詢做緩存;二級(jí)緩存的生命周期和sessionFactory的生命周期是一樣的,sessionFactory可以管理二級(jí)緩存;
2.sessionFactory級(jí)別的緩存,需要手動(dòng)配置;所有的session可以共享sessionFactory 級(jí)別的緩存;(一般把一些不經(jīng)常變化的實(shí)體對(duì)象放到sessionFactory級(jí)別的緩存中,適合放不經(jīng)常變化的實(shí)體對(duì)象。)
3.Hiberante 3二級(jí)緩存的配置和使用方法如下:
必須把ehcache.jar包導(dǎo)入,然后到Hibernate3.2的etc文件下把ehcache.xml復(fù)制到工程src目錄下(ehcache.xml里邊的參數(shù)里邊有詳細(xì)英文說明);
說明:ehcache.jar是第三方法的緩存產(chǎn)品,hiberante只是把它做了集成,還有好多第三方Hibernate集成的緩存產(chǎn)品,相關(guān)說明請(qǐng)查閱hiberante3開發(fā)手冊(cè);ehcache是不支持分布應(yīng)用的,如果有分布式需求,請(qǐng)換成支持分布式的二級(jí)緩存產(chǎn)品,hiberate3開發(fā)手冊(cè)都有相頭說明。配置方法都類似);
4.Hibernate 3二級(jí)緩存默認(rèn)是開起的,也可以指定開起。在Hibernate.cfg.xml 文件下配置如下:
- <property name=”hibernate.cache.use_second_level_cache”>true</property>
- //指定二級(jí)緩存產(chǎn)品的提供商;
- <property name=”hibernate.cache.provider_class”>
- org.hibernate.cache.EhCacheProvider
- </property>
要讓那些實(shí)體使用二級(jí)緩存,在Hibernate.cfg.xml配置文件中加入:
- <!—
- 讓這個(gè)實(shí)體用二級(jí)緩存 也可以在實(shí)體中映射文件去配置即:
- <cache usage="read-only"/>
- -->
- <class-cache class=”com.zzz.hibernate.ClassT” usage=”read-only”/>
Read-only一般使用這個(gè)策略,其它的Hibernate3開發(fā)手冊(cè)中也有詳細(xì)介紹;
CacheMode去Hibernate 3開發(fā)手冊(cè)中搜索這個(gè)關(guān)鍵字,可以找到一級(jí)緩存和二級(jí)緩存交互使用的問題。
【編輯推薦】