Spring的事务管理对何种异常进行回滚

简介:

 

一、结论

Spring的事务管理默认只对出现运行期异常(java.lang.RuntimeException及其子类)进行回滚。

如果一个方法抛出Exception或者Checked异常,Spring事务管理默认不进行回滚。

关于异常的分类请参看本博客的《Java异常分类》http://blog.csdn.net/woshixuye/article/details/8230407

 

 

二、改变默认方式

在@Transaction注解中定义noRollbackFor和RollbackFor指定某种异常是否回滚。

@Transaction(noRollbackFor=RuntimeException.class)

@Transaction(RollbackFor=Exception.class)

这样就改变了默认的事务处理方式。

 

 

三、启示

这就要求我们在自定义异常的时候,让自定义的异常继承自RuntimeException,这样抛出的时候才会被Spring默认的事务处理准确处理。

 

 

目录
相关文章
|
6月前
|
数据库
通过基于注解的声明式事务实现事务功能~2
通过基于注解的声明式事务实现事务功能~
|
XML Java 关系型数据库
Spring Boot 异常处理回滚事务详解(自动回滚、手动回滚、部分回滚)
Spring Boot 异常处理回滚事务详解(自动回滚、手动回滚、部分回滚)
1733 0
|
1月前
|
Java 数据库 开发者
|
4月前
|
SQL Java 数据库连接
spring声明式事务 @Transactional 不回滚的多种情况以及解决方案
spring声明式事务 @Transactional 不回滚的多种情况以及解决方案
56 0
|
5月前
|
XML Java 数据库
Spring框架中如何处理事务管理
Spring框架中如何处理事务管理
104 0
|
6月前
|
XML Java 关系型数据库
通过基于注解的声明式事务实现事务功能~1
通过基于注解的声明式事务实现事务功能~
通过基于注解的声明式事务实现事务功能~1
|
Java 数据库 Spring
Spring中的事务传播机制和嵌套事务
Spring中声明式事务确实给我们带来了很大的便利,在Service层方法上带上@Transactional注解即可实现事务,首先看看@Transactional的默认配置:
|
Java 数据库连接 数据库
Spring 事务【Spring事务的定义与基本实现】
Spring 事务【Spring事务的定义与基本实现】
Spring 事务【Spring事务的定义与基本实现】
|
XML 安全 Java
Spring事务专题(四)Spring中事务的使用、抽象机制及模拟Spring事务实现(1)
Spring事务专题(四)Spring中事务的使用、抽象机制及模拟Spring事务实现(1)
182 0
Spring事务专题(四)Spring中事务的使用、抽象机制及模拟Spring事务实现(1)
|
SQL Java 数据库连接
Spring事务专题(四)Spring中事务的使用、抽象机制及模拟Spring事务实现(2)
Spring事务专题(四)Spring中事务的使用、抽象机制及模拟Spring事务实现(2)
137 0
Spring事务专题(四)Spring中事务的使用、抽象机制及模拟Spring事务实现(2)