<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)航:
     
    主站蜘蛛池模板: 日韩免费高清一级毛片| 亚洲福利一区二区| 亚洲性久久久影院| 久久精品国产亚洲7777| 少妇中文字幕乱码亚洲影视| 激情综合亚洲色婷婷五月APP| 小说区亚洲自拍另类| 秋霞人成在线观看免费视频 | 亚洲性日韩精品一区二区三区| 国产精品亚洲专区无码不卡| 国产免费无码AV片在线观看不卡| 欧美最猛性xxxxx免费| 亚洲国产精品一区二区第四页| 亚洲首页在线观看| 国产区在线免费观看| 午夜私人影院免费体验区| 亚洲国产精品无码中文字| 国产亚洲福利在线视频| 色www永久免费网站| 成全高清视频免费观看| 亚洲色婷婷一区二区三区| 国产偷国产偷亚洲清高APP| 亚洲 另类 无码 在线| 色偷偷亚洲女人天堂观看欧| 亚洲精品免费观看| 亚洲一区二区高清| 免费A级毛片无码专区| 久久亚洲国产精品一区二区| 97视频免费观看2区| 亚洲熟妇AV一区二区三区宅男| 成在人线av无码免费高潮喷水| 久久久久亚洲AV成人网| 日韩精品极品视频在线观看免费| 亚洲av片不卡无码久久| 又色又污又黄无遮挡的免费视| 亚洲人精品亚洲人成在线| 亚洲人成国产精品无码| 一级毛片无遮挡免费全部| 亚洲日韩中文字幕日韩在线| 十九岁在线观看免费完整版电影| 亚洲欧洲国产综合AV无码久久|