Spring的事务管理对何种异常进行回滚
2012-11-27 16:15
435 查看
一、结论
Spring的事务管理默认只对出现运行期异常(java.lang.RuntimeException及其子类)进行回滚。
如果一个方法抛出Exception或者Checked异常,Spring事务管理默认不进行回滚。
关于异常的分类请参看本博客的《Java异常分类》/article/1634107.html
二、改变默认方式
在@Transaction注解中定义noRollbackFor和RollbackFor指定某种异常是否回滚。
@Transaction(noRollbackFor=RuntimeException.class)
@Transaction(RollbackFor=Exception.class)
这样就改变了默认的事务处理方式。
三、启示
这就要求我们在自定义异常的时候,让自定义的异常继承自RuntimeException,这样抛出的时候才会被Spring默认的事务处理准确处理。
Spring的事务管理默认只对出现运行期异常(java.lang.RuntimeException及其子类)进行回滚。
如果一个方法抛出Exception或者Checked异常,Spring事务管理默认不进行回滚。
关于异常的分类请参看本博客的《Java异常分类》/article/1634107.html
二、改变默认方式
在@Transaction注解中定义noRollbackFor和RollbackFor指定某种异常是否回滚。
@Transaction(noRollbackFor=RuntimeException.class)
@Transaction(RollbackFor=Exception.class)
这样就改变了默认的事务处理方式。
三、启示
这就要求我们在自定义异常的时候,让自定义的异常继承自RuntimeException,这样抛出的时候才会被Spring默认的事务处理准确处理。
相关文章推荐
- Spring的事务管理对何种异常进行回滚
- Spring的事务管理对何种异常进行回滚
- Spring的事务管理对何种异常进行回滚
- Spring的事务管理对何种异常进行回滚
- Spring事务管理只对出现运行期异常进行回滚
- Spring事务管理只对出现运行期异常进行回滚
- Spring事务管理只对出现运行期异常进行回滚
- Spring事务管理只对出现运行期异常进行回滚
- Spring事务管理只对出现运行期异常进行回滚
- Spring事务管理只对出现运行期异常进行回滚
- Spring事务管理只对出现运行期异常进行回滚
- Spring事务管理只对出现运行期异常进行回滚
- Spring事务管理只对出现运行期异常进行回滚
- Spring事务管理只对出现运行期异常进行回滚
- Spring事务管理只对出现运行期异常进行回滚
- Spring事务管理只对出现运行期异常进行回滚
- mysql事务管理及spring声明式事务中主动异常抛出使数据库回滚
- Spring管理事务默认回滚的异常是什么?
- Spring管理事务默认回滚的异常是什么?
- Spring的AOP事务管理默认针对unchecked异常回滚