一点一滴,编程人生

  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 阅读(1903) 评论(1)  编辑  收藏 所属分类: Spring框架

评论

# re: spring 异常与事务回滚 2014-10-14 10:16 ssdass
sdfsfdsdff  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: