hibernate + jpa @Cache

hibernate + jpa @Cache

ID:40749319

大小:29.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》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

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

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

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

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

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

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

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

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

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

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