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

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

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

    hyljava

    Write operations are not allowed in read-only mode 只讀模式下(FlushMode.NEVER/MANUAL)寫操作不允

    Write operations are not allowed in read-only mode 只讀模式下(FlushMode.NEVER/MANUAL)寫操作不允

    org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode (FlushMode.NEVER/MANUAL): Turn your Session into FlushMode.COMMIT/AUTO or remove 'readOnly' marker from transaction definition.

    問題只讀模式下(FlushMode.NEVER/MANUAL)寫操作不被允許:把你的Session改成FlushMode.COMMIT/AUTO或者清除事務(wù)定義中的readOnly標(biāo)記。

     

    錯(cuò)誤原因:
              OpenSessionInViewFilter在getSession的時(shí)候,會(huì)把獲取回來的session的flush mode 設(shè)為FlushMode.NEVER。然后把該sessionFactory綁定到TransactionSynchronizationManager,使request的整個(gè)過程都使用同一個(gè)session,在請(qǐng)求過后再接除該sessionFactory的綁定,最后closeSessionIfNecessary根據(jù)該session是否已和transaction綁定來決定是否關(guān)閉session。在這個(gè)過程中,若HibernateTemplate 發(fā)現(xiàn)自當(dāng)前session有不是readOnly的transaction,就會(huì)獲取到FlushMode.AUTO Session,使方法擁有寫權(quán)限。也即是,如果有不是readOnly的transaction就可以由Flush.NEVER轉(zhuǎn)為Flush.AUTO,擁有insert,update,delete操作權(quán)限,如果沒有transaction,并且沒有另外人為地設(shè)flush model的話,則doFilter的整個(gè)過程都是Flush.NEVER。所以受transaction(聲明式的事務(wù))保護(hù)的方法有寫權(quán)限,沒受保護(hù)的則沒有。

    解決方法:

    web.xml配置里添加
    <filter>
       <filter-name>OpenSessionInViewFilter</filter-name>
       <filter-class>
        org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
       </filter-class>
       <init-param>
        <param-name>sessionFactoryBeanName</param-name>
        <param-value>sessionFactory</param-value>
       </init-param>
       <init-param>
                <param-name>singleSession</param-name>
                <param-value>true</param-value>           
            </init-param>
            <init-param>
            <param-name> flushMode </param-name>
       <param-value>AUTO </param-value>        
            </init-param>
    </filter>
      //   。。。。


    <filter-mapping>
       <filter-name>OpenSessionInViewFilter</filter-name>
       <url-pattern>/*</url-pattern>
    </filter-mapping>

     

    如果在交給spring 管理的情況下,在beans.xml 里的配置

     <bean id="txManager"
      class="org.springframework.orm.hibernate3.HibernateTransactionManager">
      <property name="sessionFactory" ref="sessionFactory" />
     </bean>

     <aop:config>
      <aop:pointcut id="bussinessService"
       expression="execution(* com.fan.service.base.*.*(..))" />
      <aop:advisor pointcut-ref="bussinessService"
       advice-ref="txAdvice" />
     </aop:config>

     <tx:advice id="txAdvice" transaction-manager="txManager">
      <tx:attributes>
       <tx:method name="get*" read-only="false" propagation="NOT_SUPPORTED"/>
       <tx:method name="find*" read-only="false" propagation="NOT_SUPPORTED"/>
       <tx:method name="save*" propagation="REQUIRED"/> // 如果不把save update delete都配置上,
       <tx:method name="update*" propagation="REQUIRED"/> //這些操作會(huì)無效
       <tx:method name="delete*" propagation="REQUIRED"/>
      </tx:attributes>
     </tx:advice>

    posted on 2012-09-05 11:57 何云隆 閱讀(31499) 評(píng)論(2)  編輯  收藏 所屬分類: HibernatespringStruts2

    評(píng)論

    # re: Write operations are not allowed in read-only mode 只讀模式下(FlushMode.NEVER/MANUAL)寫操作不允 2016-08-08 17:47

    好  回復(fù)  更多評(píng)論   

    # re: Write operations are not allowed in read-only mode 只讀模式下(FlushMode.NEVER/MANUAL)寫操作不允 2016-08-08 17:47 好好

    @好
    好好好  回復(fù)  更多評(píng)論   

    主站蜘蛛池模板: 亚洲精品一级无码鲁丝片| 91精品免费久久久久久久久| 美女视频黄频a免费| 国产精品亚洲综合五月天| 亚洲激情视频网站| 亚洲经典在线中文字幕| 亚洲视频小说图片| 亚洲成a人片毛片在线| 亚洲黄色中文字幕| 亚洲乱码在线视频| 亚洲人成7777| 亚洲AV无码国产剧情| 亚洲日韩在线中文字幕综合| 特级毛片全部免费播放| 成年大片免费视频播放一级| 72pao国产成视频永久免费| 成年免费a级毛片免费看无码| 成在人线av无码免费高潮喷水 | 亚洲成人福利网站| 亚洲成av人片不卡无码| 亚洲中文字幕日本无线码| 亚洲av无码一区二区三区人妖 | 激情综合亚洲色婷婷五月APP| 亚洲综合一区无码精品| 国产偷国产偷亚洲清高APP| 成年网在线观看免费观看网址| a视频免费在线观看| 一级毛片免费播放| 久久久高清免费视频| 免费高清在线爱做视频| 亚洲精品一级无码鲁丝片 | 国产jizzjizz视频全部免费| 久久精品夜色噜噜亚洲A∨| 亚洲成AV人片在线观看| 亚洲免费电影网站| 青青免费在线视频| 国产精品免费观看调教网| 日韩欧美一区二区三区免费观看 | 日本zzzzwww大片免费| 日韩特黄特色大片免费视频| 亚洲精品麻豆av|