事务的传播机制
2025-4-20
| 2025-4-20
Words 689Read Time 2 min
type
status
date
slug
summary
tags
category
icon
password
之前学到过,可以把对数据库的几步操作合并成一步,达到原子性的效果,这叫做一个事务,如果一个事务中存在多个事务,这就叫做事务的传播机制。
notion image
那么这种事务是按照什么机制进行管理的?
声明式事务传播机制的种类
notion image
最常用的是前两种:
第一个是默认的,针对上面的案例,最上面的事务包含下面的两个事务,如果其中一个事务失败,那么两个事务都会失败,也就是说是形成了事务的原子性。
第二个是独立的事务,有这个注解的事务是一个独立的事务,他的成功失败只会对自己里面的方法有影响,不会对其他事务有影响。

事务的传播机制演示

每一个方法使用的都是默认传播机制
把一个语句的sql错误书写
结果应该是两个事务都会撤回
使用第二种事务传播机制
这样每一个事务都是独立的,一个事务的执行不会影响另一个
但是加上之后运行还是和第一种是一样的,还不知道原因是什么
找到原因了:
两个方法执行的先后顺序有关系,如果在第一个方法执行就报错了,那么就不会执行第二个方法,所以就会和第一个注解效果一样
两个解决方法,在报错的地方进行try catch捕获异常,是程序能够继续走下去。
交换报错的顺序,报错的方法放在后面。
事务的隔离级别事件处理快速入门
Loading...