风人园

弱水三千,只取一瓢,便能解渴;佛法无边,奉行一法,便能得益。
随笔 - 99, 文章 - 181, 评论 - 56, 引用 - 0
数据加载中……

spring 事务的回滚问题

    spring的事物配置,默认状态下,只针对 RuntimeException 进行回滚。
而像SQLException并不是RuntimeException,所以这里需要特别注意。

这里困扰了我很久,一直没有想明白为什么在一个事务里面,部分成功,部分失败。可能就是这个原因导致的。
也就是说,一些系统级别的异常,前期都需要转化成 RuntimeException 。这样就可以进行回滚了。

但是这样的只需要修改底层,另外一个偷懒的方法,在每个service类上直接指定rollback = Exception.class。这样所有的异常都会回滚。但是这样有没有副作用,但是不清楚。

异常一直是我没有搞定的一块内容之一,称这个机会研究一下。
为什么需要分check 和unckeck,两者有什么不动点。
如果都是用uncheck,会不会有什么问题?
待续。。。

posted on 2010-12-14 14:01 风人园 阅读(859) 评论(1)  编辑  收藏 所属分类: Spring

评论

# re: spring 事务的回滚问题  回复  更多评论   

根据传智播客的讲座中的讲解,所谓check和uncheck是针对调用者来说的。你编写了这段功能,如果标明是check,调用这段代码的人就必须捕获该异常。反之,如果你编写的这段代码标明是uncheck,调用这段代码的地方,就可以不捕获该异常。
不知道俺说清楚了没。
2011-01-07 10:05 | mulanhua

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


网站导航: