一點一滴,編程人生

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            69 隨筆 :: 0 文章 :: 25 評論 :: 0 Trackbacks
          今天用JTA管理事務時,發現事務不能正確的回滾,具體情況是RuntimeException類型的異常能被正確的回滾,但是其它非RuntimeException異常則不能正確回滾,也就是說非運行時異常沒有被spring框架捕獲。

          查看spring文檔獲知,默認情況下,spring框架只捕獲RuntimeException異常或是其子類,要想捕獲非運行時異常則需要如下配置:

          注意:rollback-for="YourException" 是關鍵代碼!"YourException"代表哪一類型的異常能被正確的回滾。這里可以指定Exception或是Throwable。這樣配置就可以捕獲指定類型的異常了。

          <tx:advice id="txAdvice" transaction-manager="txManager">
            
          <tx:attributes>
              
          <tx:method name="get*" read-only="true" rollback-for="YourException"/>
              
          <tx:method name="*"/>
            
          </tx:attributes>
          </tx:advice>
          posted on 2011-07-27 22:43 writegull 閱讀(1922) 評論(1)  編輯  收藏 所屬分類: Spring框架

          評論

          # re: spring 異常與事務回滾 2014-10-14 10:16 ssdass
          sdfsfdsdff  回復  更多評論
            


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


          網站導航:
           
          主站蜘蛛池模板: 敖汉旗| 安康市| 茶陵县| 奉节县| 卢湾区| 玉山县| 大渡口区| 当阳市| 台前县| 隆昌县| 武义县| 普定县| 兰溪市| 岗巴县| 大名县| 漳州市| 陇川县| 凤山市| 朝阳市| 福清市| 阳新县| 钟山县| 通许县| 光山县| 丰台区| 三穗县| 蕉岭县| 乐安县| 井冈山市| 苏尼特右旗| 丰宁| 玛曲县| 文昌市| 上虞市| 宜兰市| 辰溪县| 华宁县| 舒兰市| 婺源县| 神农架林区| 响水县|