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

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

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

    Ordinary hut

    人間一福地,勝似天仙宮
    posts - 61, comments - 50, trackbacks - 0, articles - 1

    關(guān)于spring+hibernate的FlushMode的記錄

    Posted on 2009-11-25 22:55 landor 閱讀(5028) 評(píng)論(0)  編輯  收藏 所屬分類: hibernate
    參見hibernate的api說(shuō)明https://www.hibernate.org/hib_docs/v3/api/org/hibernate/FlushMode.html

    說(shuō)明FlushMode有五種屬性

    1 NEVEL  
    已經(jīng)廢棄了,被MANUAL取代了

    2 MANUAL 
    spring3.x中的opensessioninviewfilter已經(jīng)將默認(rèn)的FlushMode設(shè)置為MANUAL了;
    如果FlushMode是MANUAL或NEVEL,在操作過(guò)程中hibernate會(huì)將事務(wù)設(shè)置為readonly,所以在
    增加、刪除或修改操作過(guò)程中會(huì)出現(xiàn)如下錯(cuò)誤
    org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read
    -only mode (FlushMode.NEVER) - turn your Session into FlushMode.AUTO or remove 'readOnly' marker from transaction definition;
    解決辦法網(wǎng)上有很多;
    1 配置事務(wù),spring會(huì)讀取事務(wù)中的各種配置來(lái)覆蓋hibernate的session中的FlushMode;
    2 先編程式修改FlushMode,比如session.setFlushMode(FlushMode.AUTO); 這樣hibernate就會(huì)自動(dòng)去除readonly限制;
    3 直接修改opensessioninviewfilter過(guò)濾器的配置,配置過(guò)濾器的時(shí)候配置
    <filter>
          
    <filter-name>openSession</filter-name>
          
    <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
          
    <init-param>
              
    <param-name>flushMode</param-name>
              
    <param-value>AUTO</param-value>
          
    </init-param>
      
    </filter>
    3 AUTO
    設(shè)置成auto之后,當(dāng)程序進(jìn)行查詢、提交事務(wù)或者調(diào)用session.flush()的時(shí)候,都會(huì)使緩存和數(shù)據(jù)庫(kù)進(jìn)行同步,也就是刷新數(shù)據(jù)庫(kù)
    4 COMMIT
    提交事務(wù)或者session.flush()時(shí),刷新數(shù)據(jù)庫(kù);查詢不刷新

    5 ALWAYS
    每次進(jìn)行查詢、提交事務(wù)、session.flush()的時(shí)候都會(huì)刷數(shù)據(jù)庫(kù)
    這里需要說(shuō)一下和AUTO的區(qū)別,當(dāng)hibernate緩存中的對(duì)象被改動(dòng)之后,會(huì)被標(biāo)記為臟數(shù)據(jù)(即與數(shù)據(jù)庫(kù)不同步了)。當(dāng)session設(shè)置為FlushMode.AUTO時(shí),hibernate在進(jìn)行查詢的時(shí)候會(huì)判斷緩存中的數(shù)據(jù)是否為臟數(shù)據(jù),是則刷數(shù)據(jù)庫(kù),不是則不刷,而always是直接刷新,不進(jìn)行任何判斷。很顯然auto比always要高效得多。


    主站蜘蛛池模板: 亚洲狠狠狠一区二区三区| 亚洲国产精品日韩| 麻豆亚洲AV永久无码精品久久 | 久久国产成人精品国产成人亚洲| 亚洲人成无码网站在线观看| 人禽杂交18禁网站免费| 亚洲午夜理论片在线观看| 免费黄色小视频网站| 亚洲AV无码专区在线厂| 国产成人亚洲精品91专区手机| 成在线人免费无码高潮喷水| 亚洲大尺度无码专区尤物| 在线成人爽a毛片免费软件| 2017亚洲男人天堂一| 免费无码黄网站在线观看| 免费人成视频在线播放| 在线观看亚洲av每日更新| 免费日本一区二区| 亚洲成人福利网站| 日韩激情淫片免费看| 国产免费人成视频尤勿视频| 亚洲最大成人网色| 国产黄色片在线免费观看| eeuss影院www天堂免费| 亚洲美女在线观看播放| 日本免费一本天堂在线| a级毛片黄免费a级毛片| 亚洲AV成人噜噜无码网站| 免费一区二区三区四区五区| 日韩免费电影网址| 亚洲av无码无线在线观看| 亚洲综合精品香蕉久久网| 麻花传媒剧在线mv免费观看| 综合一区自拍亚洲综合图区| 无码欧精品亚洲日韩一区| 成年女人午夜毛片免费看| 两个人看的www免费高清| 国产精品亚洲四区在线观看| 亚洲日韩中文无码久久| 免费黄网在线观看| 久久久久国色av免费看|