关于Spring事务传播的问题
- 论坛
- 关于Spring事务传播的问题
7 浏览
关于Spring事务传播的问题
我有一个关于Spring事务传播的问题。
假设我使用@Transactional(propagation = Propagation.REQUIRED)
来注释一个方法m1()
。当执行逻辑进入m1()
时,如果已经有一个事务,m1()
将使用那个事务。当m1()
执行完毕后,事务怎样处理?它会结束还是仍然保持开启状态?(如果我在另一个方法中调用m1()
,并且在调用之后仍有其他事情要做)。
总之,我想知道退出一个带注释的方法时,事务是否结束或仍旧保持开启状态?
非常感谢。
admin 更改状态以发布 2023年5月23日
匿名的
0 Comments
Propagation.REQUIRED
(在此处记录)将创建一个新事务(如果当前线程不存在事务),或将加入现有事务(如果存在)。
当方法退出时,如果进入方法导致创建事务,则事务将被完成;否则,如果在进入方法时事务已经存在,则事务将保持打开状态。换句话说,它是对称的,并将使线程的事务状态保持与进入方法之前相同的状态。