Spring 事务失效的 8 大场景,看看你都遇到过几个?

本文总结了Spring中@Transactional注解可能导致事务失效的8个常见场景,包括数据库引擎不支持事务、类未被Spring管理、方法访问权限、自身调用问题、数据源无事务管理器、propagation配置不当、异常处理和异常类型错误。了解这些场景有助于解决事务处理中的问题。
摘要由CSDN通过智能技术生成

用 Spring 的 @Transactional 注解控制事务有哪些不生效的场景?

不知道小伙伴们有没有这样的经历,在自己开心的编写业务代码时候,突然某一个方法里的事务好像失效了。然后 debug 跟踪代码时发现,自己第一步的 insert 或者 update 的数据在语句执行完毕后,数据库中并没有立即出现更改或保存完的新数据。

所以一度怀疑spring 的事务失效了。那么这篇文章就来总结一下,大家给大家造成 “spring事务失效”错觉的 几个常见场景,然后对症下药。

Let's GO!!!

以本人的经历中遇到的问题,大概分有以下几个场景:

  • 数据库引擎是否支持事务(Mysql 的 MyIsam引擎不支持事务);

  • 注解所在的类是否被加载为 Bean(是否被spring 管理);

  • 注解所在的方法是否为 public 修饰的;

  • 是否存在自身调用的问题;

  • 所用数据源是否加载了事务管理器;

  • @Transactional的扩展配置propagation是否正确。

下面展开分析每一个场景:

数据库引擎不支持事务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值