<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-75  評論-193  文章-5  trackbacks-0

    這篇Blog是原來寫在別的地方的,今天將其轉(zhuǎn)到BlogJava上來。
    -------------------------------------------------------------------------------

    今天仔仔細細的看了一下Hibernate的緩存,并做了實例實踐了一把。google一下,網(wǎng)上的教程、文章很多。
    自己小結(jié)一下:

    Hibernate的緩存分為:

    • 一級緩存:在Session級別的,在Session關(guān)閉的時候,一級緩存就失效了。
    • 二級緩存:在SessionFactory級別的,它可以使用不同的緩存實現(xiàn),如EhCache、JBossCache、OsCache等。

    緩存的注釋寫法如下,加在Entity的java類上:

    • @Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)

    緩存的方式有四種,分別為:

    • CacheConcurrencyStrategy.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,不嚴(yán)格的讀寫模式則不會的緩存數(shù)據(jù)加鎖;
    • CacheConcurrencyStrategy.TRANSACTIONAL,事務(wù)模式指緩存支持事務(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時,可以將其進行如下轉(zhuǎn)化,再調(diào)用setCacheable方法(如果JPA的實現(xiàn)是其它ORMAP框架,就不知道怎么做了)。

    if (query instanceof org.hibernate.ejb.QueryImpl) {
        ((org.hibernate.ejb.QueryImpl) query).getHibernateQuery().setCacheable(
    true);
    }

    2、還有就是查詢緩存的查詢執(zhí)行后,會將查詢結(jié)果放入二級緩存中,但是放入的形式是以ID為Key,實例作為一個Value。

    3、hibernate的配置文件中需加入如下信息:

    <property name="hibernate.cache.provider_class" value="org.hibernate.cache.EhCacheProvider" />
    <property name="hibernate.cache.use_second_level_cache" value="true" />
    <property name="hibernate.cache.use_query_cache" value="true" />


    posted on 2009-04-07 22:54 The Matrix 閱讀(10137) 評論(3)  編輯  收藏 所屬分類: Hibernate

    評論:
    # re: Hibernate緩存配置[未登錄] 2009-04-09 12:17 | 太陽里的雪
    告訴大家千萬不要使用hibernate的查詢緩存,要不然會搞死數(shù)據(jù)庫,整個網(wǎng)站都會搞死,經(jīng)驗啊~~~  回復(fù)  更多評論
      
    # re: Hibernate緩存配置 2009-04-09 20:02 | The Matrix
    @太陽里的雪
    為什么呢?  回復(fù)  更多評論
      
    # re: Hibernate緩存配置 2011-04-07 12:37 | gu8oke
    @太陽里的雪
    搞死數(shù)據(jù)庫???是你使用的有問題吧  回復(fù)  更多評論
      
    主站蜘蛛池模板: 一级做a爰片性色毛片免费网站| 亚洲JLZZJLZZ少妇| a级午夜毛片免费一区二区| 亚洲国产香蕉人人爽成AV片久久| 亚洲国产精品精华液| 在线观看免费国产视频| 亚洲av中文无码字幕色不卡| 日本免费福利视频| 人妖系列免费网站观看| 亚洲熟妇av一区二区三区漫画| 99re6在线精品免费观看| 亚洲av中文无码乱人伦在线播放| 久久青草国产免费观看| 久久精品国产亚洲av麻豆色欲| 曰批全过程免费视频在线观看| 亚洲欧洲日产国码久在线| 国产成人精品123区免费视频| 一级做a爰片久久毛片免费看| 亚洲av中文无码乱人伦在线咪咕| 最近免费中文字幕高清大全| 亚洲色偷偷色噜噜狠狠99网| 免费国产美女爽到喷出水来视频| 三级毛片在线免费观看| 亚洲系列中文字幕| 国产一级淫片a视频免费观看| 精品熟女少妇aⅴ免费久久| 久久av无码专区亚洲av桃花岛| 在线a级毛片免费视频| 成人午夜影视全部免费看| 亚洲一区二区影院| 永久黄网站色视频免费观看| 国产日韩久久免费影院| 亚洲导航深夜福利| 亚洲VA综合VA国产产VA中| 最近最新高清免费中文字幕 | 精品国产亚洲一区二区三区| 免费观看激色视频网站bd| 美女被爆羞羞网站免费| 91在线亚洲精品专区| 免费一级毛片在线播放不收费| 69av免费观看|