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

 

 

目录
相关文章
|
存储 Web App开发 人工智能
『GitHub项目圈选18』推荐5款本周 超实用 的开源项目
『GitHub项目圈选18』推荐5款本周 超实用 的开源项目
948 1
|
easyexcel
EasyExcel低版本中数据行中包含空数据会跳过导致数据对应不上的问题解析
EasyExcel低版本中数据行中包含空数据会跳过导致数据对应不上的问题解析
671 0
|
存储 Ubuntu Linux
Docker容器简介、优缺点与安装
Docker容器简介、优缺点与安装
|
传感器 编解码 Ubuntu
ESP32-C3入门教程 基础篇(七、LEDC — LED PWM 控制器)
测试第7课,补一补基本的PWM控制器的测试。 说明一下,ESP32-C3没有MCPWM硬件,所以测试只有LEDPWM, 如果想用ESP32-C3控制电机,可以考虑使用 RMT,后期有机会测试一下。
1089 0
ESP32-C3入门教程 基础篇(七、LEDC — LED PWM 控制器)
|
IDE NoSQL Shell
手把手将Visual Studio Code变成Python开发神器
Visual Studio Code 是一款功能强大、可扩展且轻量级的代码编辑器,经过多年的发展,已经成为 Python 社区的首选代码编辑器之一 下面我们将学习如何安装 Visual Studio Code 并将其设置为 Python 开发工具,以及如何使用 VS Code 提高编程工作效率 Let's do it!
手把手将Visual Studio Code变成Python开发神器
|
开发框架 缓存 Java
盘古开发框架简介,工业级微服务开发治理框架
「盘古开发框架」是一套轻量灵活、成熟可靠的工业级分布式微服务开发和治理框架(兼容垂直单体分层架构)。它基于 Apache-2.0 协议开源发布,且是免费的。
1222 1
盘古开发框架简介,工业级微服务开发治理框架
|
SQL 关系型数据库 MySQL
数据库原理及应用——熟悉数据库管理工具、数据库和表的创建与管理
(一)掌握数据库管理工具的配置方法 1.使用Microsoft SQL Server配置管理器控制SQL Server的后台服务; 2.使用Microsoft SQL Server Management Studio综合管理平台配置数据库实例; 3.掌握第三方管理工具连接本地和远程数据库服务器的配置过程与方法; (二)练习查询分析器的使用 1.使用查询分析器进行查询语句的编写; 2.练习模板的使用; 3.熟悉查询分析器的环境; (三)熟悉系统数据库的结构 (四)熟悉样例数据库的内容 (五)数据库的创
695 0
数据库原理及应用——熟悉数据库管理工具、数据库和表的创建与管理
|
算法 C++
C++实现树 - 06 哈夫曼树编码
这一讲我们来学习一个比较有趣的树 —— 哈夫曼树,在许多非常知名的算法里也出现了哈夫曼树,这一讲我们就好好来唠唠什么是哈夫曼树。
277 0
C++实现树 - 06 哈夫曼树编码
|
存储 弹性计算 运维
|
消息中间件 NoSQL Java
互联网大厂年度总结1000+道高频面试题(附答案解析)冲刺2021
进大厂是大部分程序员的梦想,而进大厂的门槛也是比较高的,所以这里整理了一份阿里、美团、滴滴、头条等大厂面试大全,其中概括的知识点有:Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、Spring Boot、Spring Cloud、RabbitMQ、Kafka、Linux 等技术栈共有1000+道面试题