@Transactional 事务失效场景汇总

背景:面试被问到一个提,说说事务失效的场景,答的很不好,所以平时还是加强总结,发散思维,多做准备。

 

失效可能的原因

Spring 事务失效的8大原因
1、数据库引擎是否支持事务(Myisam不支持事务)
2、注解所在的类是否被加载成Bean(对象没有被Spring管理)
3、注解所在的方法是否为public修饰
4、是否发生了自身调用问题
5、所有数据源是否加载了事务管理器
6、@transaction的propagation配置是否正确
7、捕获了异常
8、checked exceptions无效,需要配置rollbackFor = Throwable.class

 

Spring事务失效的 8 大原因,这次可以吊打面试官了!

ps:交简单的说明了几种场景

 

java中异常的分类(事务只回滚unchecked异常)

详解Java中的checked异常和unchecked异常

将派生于Error或者RuntimeException的异常称为unchecked异常,所有其他的异常成为checked异常。
ps:

public class RuntimeException extends Exception
public class Exception extends Throwable

Exception中非RuntimeException的异常为checked 异常,编译会无法通过

上一篇:@transactional注解在什么情况下会失效


下一篇:Java学习day34