hibernate + jpa @Cache

hibernate + jpa @Cache

ID:40749319

大?。?9.23 KB

頁數(shù):11頁

時間:2019-08-07

hibernate + jpa @Cache_第1頁
hibernate + jpa @Cache_第2頁
hibernate + jpa @Cache_第3頁
hibernate + jpa @Cache_第4頁
hibernate + jpa @Cache_第5頁
資源描述:

《hibernate + jpa @Cache》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、hibernate+jpa@Cache分類:cache緩存緩存映射Cachemappings1.只讀緩存readonly2.讀寫緩存readwrite3.非嚴(yán)格讀寫緩存nonstrictreadwrite4.HibernateAnnotation中配置EhCache緩存先了解一下cache基礎(chǔ):一級緩存Hibernate的一級緩存是由Session提供的,因此它只存在于Session的生命周期中,當(dāng)程序調(diào)用save(),update(),saveorupdate()等方法及調(diào)用查詢接口list,filter,iterate時,如session緩存中還不存在相應(yīng)的對象,Hibe

2、rnate會把該對象加入到一級緩存中,當(dāng)Session關(guān)閉的時候該Session所管理的一級緩存也會立即被清除Hibernate的一級緩存是Session所內(nèi)置的,不能被卸載,也不能進(jìn)行任何配置二級緩存配置:1、首先要打開二級緩存,在hibernate.cfg.xml中添加如下配置:true2、Hibernate的二級緩存使用第三方的緩存工具來實現(xiàn),所以我們需要指定Hibernate使用哪個緩存工具。如下配置指定Hibernate使用EhCach

3、e緩存工具。org.hibernate.cache.EhCacheProvider3、Hibernate在默認(rèn)情況下并不會對所有實體對象進(jìn)行緩存,所以,我們需要指定緩存哪些對象,在實體對象的映射文件中(相應(yīng)的標(biāo)簽內(nèi)部),添加如下配置:usage="read-only"是“只讀”緩存策略。注意,這個標(biāo)簽只能放在標(biāo)簽的內(nèi)部,而且必須處在標(biāo)簽的前面?。。∵@個

4、>標(biāo)簽放在哪些標(biāo)簽下面,就說明會多這些類的對象進(jìn)行緩存4、對于第3步,有一個可選的方案是在hibernate.cfg.xml文件中指定哪些類的對象需要緩存,而不需要使用標(biāo)簽來指定。如:在hibernate.cfg.xml中添加如下配置:注意,這個標(biāo)簽必須放在標(biāo)簽的后面?。ibernate緩存配置________________________________________

5、_____________________________________________Hibernate的緩存分為:  一級緩存:在Session級別的,在Session關(guān)閉的時候,一級緩存就失效了。  二級緩存:在SessionFactory級別的,它可以使用不同的緩存實現(xiàn),如EhCache、JBossCache、OsCache等。  緩存的注釋寫法如下,加在Entity的java類上:  @Cache(usage=CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)  緩存的方式有四種,分別為:  CacheConcurrenc

6、yStrategy.NONE  CacheConcurrencyStrategy.READ_ONLY,只讀模式,在此模式下,如果對數(shù)據(jù)進(jìn)行更新操作,會有異常;  CacheConcurrencyStrategy.READ_WRITE,讀寫模式在更新緩存的時候會把緩存里面的數(shù)據(jù)換成一個鎖,其它事務(wù)如果去取相應(yīng)的緩存數(shù)據(jù),發(fā)現(xiàn)被鎖了,直接就去數(shù)據(jù)庫查詢;  CacheConcurrencyStrategy.NONSTRICT_READ_WRITE,不嚴(yán)格的讀寫模式則不會的緩存數(shù)據(jù)加鎖;  CacheConcurrencyStrategy.TRANSACTIONAL,事務(wù)模式指緩存

7、支持事務(wù),當(dāng)事務(wù)回滾時,緩存也能回滾,只支持JTA環(huán)境?! ×硗膺€有如下注意事項:  1、查詢緩存需要在Query的相應(yīng)方法執(zhí)行前加上這么一句:  query.setCacheable(true);  在使用Hibernate時,獲得的query有setCacheable方法,可以設(shè)置使用緩存,但當(dāng)使用JPA時,javax.persistence.Query并沒有setCacheable方法,此時如果JPA的實現(xiàn)是Hibernate時,可以將其進(jìn)行如下轉(zhuǎn)化,再調(diào)用setCacheable方法(如果JPA

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。