
下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、轉(zhuǎn)載:hibernate + jpa cache .一級(jí)緩存 hibernate 的一級(jí)緩存是由 session 提供的,因此它只存在于 session 的生命周期中,當(dāng)程序調(diào)用 save(),up(),saveorupdate() 等辦法 及調(diào)用查詢接口 list,filter,iterate 時(shí),如 session 緩存中還不存在相應(yīng)的對(duì)象, hibernate 會(huì)把該對(duì)象加入到一級(jí)緩存中, 當(dāng) session 關(guān)閉的時(shí)候該 session 所管理的一級(jí)緩存也會(huì)立刻被清除 hibernate 的一級(jí)緩存是 session 所內(nèi)置的,不能被卸載,也不能舉行任何配置 二級(jí)緩存配置 1 、首先要
2、打開(kāi)二級(jí)緩存,在 hibernate.cfg.xml 中添加如下配置: property name=hibernate.cache.use_second_level_cache ue /property 2 、 hibernate 的二級(jí)緩存用法第三方的緩存工具來(lái)實(shí)現(xiàn),所以我們需要指定 hibernate 用法哪個(gè) 緩存工具。如下配置指定 hibernate 用法 ehcache 緩存工具。 property name=ver_class org.hibernate.cache.ehcacheprovider /property 3 、 hibernate
3、 在默認(rèn)狀況下并不會(huì)對(duì)全部實(shí)體對(duì)象舉行緩存,所以,我們需要指定緩存哪些對(duì)象, 在實(shí)體對(duì)象的映射文件中(相應(yīng)的 class 標(biāo)簽內(nèi)部),添加如下配置: cache usage=read-only/ usage=read-only 是“只讀”緩存策略。 注重,這個(gè) cache 標(biāo)簽只能放在 class 標(biāo)簽的內(nèi)部,而且必需處在 id 標(biāo)簽的前面! 這個(gè) cache 標(biāo)簽放在哪些 class 標(biāo)簽下面,就解釋會(huì)多這些類的對(duì)象舉行緩存 4 、對(duì)于第 3 步,有一個(gè)可選的計(jì)劃是在 hibernate.cfg.xml 文件中指定哪些類的對(duì)象需要緩存, 而不需要用法 cache 標(biāo)簽來(lái)指定。如: 在 hib
4、ernate.cfg.xml 中添加如下配置: class-cache usage=read-only / 注重,這個(gè) class-cache 標(biāo)簽必需放在 map 標(biāo)簽的后面! hibernate緩存配置 _ hibernate的緩存分為: 一級(jí)緩存:在session級(jí)別的,在session關(guān)閉的時(shí)候,一級(jí)緩存就失效了。 二級(jí)緩存:在sessionfactory級(jí)別的,它可以用法不同的緩存實(shí)現(xiàn),如ehcache 、jbosscache、oscache等。 緩存的注釋寫(xiě)法如下,加在entity的java類上: cache(usage = cachecourrencystrategy.nonst
5、rict_read_write) 緩存的方式有四種,分離為: cacheconcurrencystrategy.none cacheconcurrencystrategy.read_only,只讀模式,在此模式下,假如對(duì)數(shù)據(jù)舉行更新操作,會(huì)有異樣; cacheconcurrencystrategy.read_write,讀寫(xiě)模式在更新緩存的時(shí)候會(huì)把緩存里面的數(shù)據(jù)換成一個(gè)鎖,其它事務(wù)假如去取相應(yīng)的緩存數(shù)據(jù),發(fā)覺(jué)被鎖了,挺直就去數(shù)據(jù)庫(kù)查詢; cacheconcurrencystrategy.nonstrict_read_write,不嚴(yán)格的讀寫(xiě)模式則不會(huì)的緩存數(shù)據(jù)加鎖; cacheconcurre
6、ncystrategy.transactional,事務(wù)模式指緩存支持事務(wù),當(dāng)事務(wù)回滾時(shí),緩存也能回滾,只支持jta環(huán)境。 另外還有如下注重事項(xiàng): 1、查詢緩存需要在query的相應(yīng)辦法執(zhí)行前加上這么一句: query.cacheable(true); 在用法hibernate時(shí),獲得的query有setcacheable 辦法,可以設(shè)置用法緩存,但當(dāng)用法jpa時(shí),javax.persistence.query并沒(méi)有setcacheable辦法,此時(shí)假如jpa的實(shí)現(xiàn)是hibernate時(shí),可以將其舉行如下轉(zhuǎn)化,再調(diào)用setcacheable辦法(假如jpa的實(shí)現(xiàn)是其它ormap框架,就不知道怎
7、么做了)。 if (query instanceof org.hibernate.ejb.queryimpl) (org.hibernate.ejb.queryimpl) query).gethibernatequery().setcacheable(true); 2、還有就是查詢緩存的查詢執(zhí)行后,會(huì)將查詢結(jié)果放入二級(jí)緩存中,但是放入的形式是以id為key,實(shí)例作為一個(gè)value。 3、hibernate的配置文件中需加入如下信息: property name=vider_class value=org.hibernate.cache.ehcachepro
8、vider / property name=hibernate.cache.use_second_level_cache value=true / property name=hibernate.cache.use_query_cache value=true / 緩存映射(cache mappings) 類或者集合映射的“ cache 元素”可以有下列形式: cache usage=transactional|read-|nonstrict-read-write|read-only (1) / usage 解釋了緩存的策略: transactional 、 read-write 、 nons
9、trict-read-write 或 read-only 。 另外(首選?), 你可以在hibernate.cfg.xml中指定 class-cache 和 lection-cache 元素。 這里的usage 屬性指明白緩存并 發(fā)策略(cache concurrency strategy) 。 只讀 緩存(read only) 假如你的應(yīng)用程序只需讀取一個(gè)持久化類的實(shí)例,而無(wú)需對(duì)其修改, 那么就可以對(duì)其舉行只讀 緩存。這是最容易,也是有用性最好的辦法。甚至在中,它也能完善地運(yùn)作。 class name=eg.immutable mutable=fae cache usage=read-onl
10、y/ . /class 讀/寫(xiě)緩存( read/write) 假如應(yīng)用程序需要更新數(shù)據(jù),那么用法讀/寫(xiě)緩存 比較合適。 假如應(yīng)用程序要求“序列化事務(wù)”的隔離級(jí)別(serializable transaction isolation level),那么就決不能用法這種緩存策略。 假如在jta環(huán)境中用法緩存,你必需指定hibernate.transaction.manager_up_class 屬 性的值, 通過(guò)它,hibernate才干知道該應(yīng)用程序中jta的transactionmanager 的 詳細(xì)策略。 在其它環(huán)境中,你必需保證在session.close() 、或session.disconnect()
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司合同續(xù)約協(xié)議
- 購(gòu)買土方合同協(xié)議書(shū)范本
- 解除保密協(xié)議合同
- 小車協(xié)議過(guò)戶合同
- 贈(zèng)予錢財(cái)合同協(xié)議
- 勞動(dòng)合同轉(zhuǎn)簽三方協(xié)議書(shū)
- 月結(jié)協(xié)議合同編號(hào)
- 施工減免店租合同協(xié)議書(shū)
- 協(xié)議轉(zhuǎn)讓快遞合同
- 親情房屋合同協(xié)議
- 2024年山西地質(zhì)集團(tuán)有限公司招聘考試真題
- 中國(guó)肝病診療管理規(guī)范
- 2025年世界知識(shí)產(chǎn)權(quán)日知識(shí)競(jìng)賽考試題庫(kù)200題(含答案解析)
- 2025年P(guān)C鋼棒分析報(bào)告
- 2025年上半年中國(guó)電子集團(tuán)總部16個(gè)崗位公開(kāi)招聘16名易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年安陽(yáng)職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)學(xué)生專用
- 游泳池安全保障制度和措施
- 音樂(lè)節(jié)演出項(xiàng)目承辦合同書(shū)
- 新視野大學(xué)英語(yǔ)(第四版)讀寫(xiě)教程4(思政智慧版)課件 B4 Unit 4 Man and nature Section A
- 2025年河南省中招理化生實(shí)驗(yàn)操作考試ABCD考場(chǎng)評(píng)分表
- 六年級(jí)《盼》說(shuō)課
評(píng)論
0/150
提交評(píng)論