@Transactional事务踩坑分享

@Transactional事务踩坑分享

马草原 967 2021-09-11

@Transactional事务踩坑分享

一般我们在需要事务的时候会用Spring提供的@Transactional注解方便的实现一个事务。但是这种写法有很多坑,一定要注意。

标注的方法必须是public

在非public方法上用@Transactional不会报错,但也不会生效。就跟没写一样…🙄
privateTest

不要在内部类里调用事务方法

在类内部调用事务方法,@Transactional不生效。。。
Transactional2

不要捕获异常

Spring的自动事务就是通过捕获异常实现的,千万不要手动捕获,如果要捕获打日志什么的处理完再跑出来!!
Transactionalcatch

不要随意指定异常

方法抛出的异常和rollbackFor指定的异常不匹配。rollbackFor不写的话默认RuntimeException如果不知道方法运行期间会抛出什么错误不填就好了。

不要创建新线程操作

新开线程执行DML,@Transactional不生效。。。
ThreadTransactional