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默认的事务处理准确处理。

 

 

目录
相关文章
|
XML Java 关系型数据库
Spring Boot 异常处理回滚事务详解(自动回滚、手动回滚、部分回滚)
Spring Boot 异常处理回滚事务详解(自动回滚、手动回滚、部分回滚)
2703 0
|
5月前
|
Java Spring
spring 事务控制 设置手动回滚 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
spring 事务控制 设置手动回滚 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
150 0
|
7月前
|
Java 数据库 Spring
Spring 事务 (编程式 & 声明式, Spring 事务传播机制)
Spring 事务 (编程式 & 声明式, Spring 事务传播机制)
67 1
|
7月前
|
Java 关系型数据库 MySQL
Spring 事务和事务传播机制
Spring 事务和事务传播机制
Spring 事务和事务传播机制
|
7月前
|
Java 数据库 开发者
|
XML Java 数据库
Spring框架中如何处理事务管理
Spring框架中如何处理事务管理
162 0
|
Java 关系型数据库 MySQL
Spring—事务及事务的传播机制(下)
Spring—事务及事务的传播机制(下)
280 0
|
SQL Java 关系型数据库
Spring—事务及事务的传播机制(上)
Spring—事务及事务的传播机制(上)
291 0
|
Java 数据库连接 数据库
Spring 事务【Spring事务的定义与基本实现】
Spring 事务【Spring事务的定义与基本实现】
Spring 事务【Spring事务的定义与基本实现】
|
XML 安全 Java
Spring事务专题(四)Spring中事务的使用、抽象机制及模拟Spring事务实现(1)
Spring事务专题(四)Spring中事务的使用、抽象机制及模拟Spring事务实现(1)
228 0
Spring事务专题(四)Spring中事务的使用、抽象机制及模拟Spring事务实现(1)