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

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

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

    隨筆 - 31  文章 - 2  trackbacks - 0
    由于OpenSessionInViewFilter把session綁在當前線程上,導(dǎo)致session的生命周期比事務(wù)要長,這期間所有事務(wù)性操作都在復(fù)用這同一個session,由此產(chǎn)生了一些“怪問題”:
    1.出現(xiàn)如下錯誤
    ???? 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?
    ? 分析原因:OpenSessionInViewFilter在把session綁在當前線程上的時候,會把session的flush mode 設(shè)為FlushMode.NEVER,因此,如果某個方法沒有事務(wù)或者有只讀事務(wù),則不能對session做insert,update,delete操作,除非事先把session的flush mode手動設(shè)為auto
    方案:
    1、將singleSession設(shè)為false,這樣只要改web.xml,缺點是Hibernate Session的Instance可能會大增,使用的JDBC Connection量也會大增,如果Connection Pool的maxPoolSize設(shè)得太小,很容易就出問題。<!-- singleSession默認為true,若設(shè)為false則等于沒用OpenSessionInView -->
    2、在控制器中自行管理Session的FlushMode,麻煩的是每個有Modify的Method都要多幾行程式
    session.setFlushMode(FlushMode.AUTO);?
    ??session.update(user);?
    ??session.flush();?
    3、Extend OpenSessionInViewFilter,Override protected Session getSession(SessionFactory sessionFactory),將FlushMode直接改為Auto。
    4、讓方法受Spring的事務(wù)控制(service和配置文件對應(yīng))
    posted on 2007-11-02 17:12 緣來如此 閱讀(426) 評論(0)  編輯  收藏 所屬分類: ssh

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: baoyu777永久免费视频| 亚洲GV天堂无码男同在线观看| 日日摸夜夜添夜夜免费视频 | 免费毛片在线看不用播放器| 亚洲成a人在线看天堂无码| 国产成人精品久久亚洲高清不卡| 精品国产一区二区三区免费看| 亚洲av无码专区在线观看亚| 永久免费av无码网站大全| 国产精品亚洲小说专区| 亚洲av手机在线观看| 国产美女视频免费观看的网站| 亚洲日本va在线视频观看| 无码日韩精品一区二区免费暖暖| 亚洲国产综合专区电影在线 | 黄色网址在线免费观看| 免费一级毛片免费播放| 亚欧洲精品在线视频免费观看| 亚洲中文字幕无码不卡电影| 在线成人精品国产区免费| 亚洲理论片在线中文字幕| 成人毛片免费观看视频| 人妻仑刮八A级毛片免费看| 国产亚洲免费的视频看| 最近免费中文字幕mv电影| 亚洲国产日韩a在线播放| 亚洲区不卡顿区在线观看| 九九精品成人免费国产片| 激情亚洲一区国产精品| 四虎永久在线精品免费观看地址| 久久久受www免费人成| 亚洲精品偷拍无码不卡av| 日本免费网站在线观看| 大妹子影视剧在线观看全集免费 | 亚洲熟女精品中文字幕| 亚洲欧洲中文日韩久久AV乱码| 最近2019免费中文字幕视频三| 在线观看亚洲电影| 亚洲AV乱码久久精品蜜桃 | 免费国产高清毛不卡片基地 | 久久亚洲精品无码|