专栏首页代码人生Spring事务失效的两种情况

Spring事务失效的两种情况

使用默认的事务处理方式

spring的事务默认是对RuntimeException进行回滚,而不继承RuntimeException的不回滚。因为在java的设计中,它认为不继承RuntimeException的异常是”checkException”或普通异常,如IOException,这些异常在java语法中是要求强制处理的。对于这些普通异常,spring默认它们都已经处理,所以默认不回滚。可以添加rollbackfor=Exception.class来表示所有的Exception都回滚。

内部调用

不带事务的方法调用该类中带事务的方法,不会回滚。因为spring的回滚是用过代理模式生成的,如果是一个不带事务的方法调用该类的带事务的方法,直接通过this.xxx()调用,而不生成代理事务,所以事务不起作用。常见解决方法,拆类。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 事务处理(一) - spring事务

    Spring是通过org.springframework.transaction.PlatformTransactionManager接口来实现事务的管理。同时...

    逝兮诚
  • powerdesigner的逆向工程

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    逝兮诚
  • JAVA8新特性(四)——Stream API

    Stream使用来处理list、array这些集合的新API。链式编程,使用Stream处理代码更简洁。

    逝兮诚
  • 小心你的网站被劫持,偷偷为他人挖矿

    腾讯云安全
  • 【技术贴】从拜占庭问题,谈区块链技术实现及政务应用

    区块链大本营
  • 【玩转腾讯云】比快更快,Github Action + 云开发部署静态网站

    云开发静态托管是云开发提供的静态网站托管的能力,静态资源(HTML、CSS、JavaScript、字体等)的分发由腾讯云对象存储 COS 和拥有多个边缘网点的腾...

    Booker Zhao
  • Redis安装教程

    我们现在讨论的是windows下的安装部署,目前windows下最新版本是:3.2.100。

    DataScience
  • Python 2.X与Python 3.X快速切换版本

    想必在学习Python时会面临选择Python2.X或者是Python3.X的问题;现在我就来教你如何在不同版本之间切换自如,当然目前还是偏向于3.X版本,毕竟...

    软测小生
  • confluence6.3安装与破解

    systemctl start mysqld systemctl enable mysqld

    dogfei
  • 2018 年主流的十大编程语言解读

    IEEE Spectrum 杂志发布了一年一度的编程语言排行榜,这个排行榜已经连续发布了五年。对于每位开发者而言,想要衡量编程语言流行度则需要依赖相对...

    加米谷大数据

扫码关注云+社区

领取腾讯云代金券