关于春季交易传播的问题

我有一个关于spring transaction传播的问题。 如果我使用@Transactional(propagation = Propagation.REQUIRED)来注释方法m1。 当执行逻辑输入m1时,如果已有事务,则m1将使用该事务。 在m1之后,交易怎么样? 它结束或仍然打开?(如果我在另一个方法中调用m1,并且在调用之后还有其他事情要做)。

总之,我想知道退出带注释的方法时,交易结束还是仍然开放?

十分感谢。

Propagation.REQUIRED ( 此处记录 )将创建一个新事务(如果当前线程不存在),或者将加入现有事务(如果存在)。

当方法退出时,交易将完成(如果输入方法导致创建交易),或将使交易保持打开(如果在输入方法时已存在交易)。 换句话说,它是对称的,并且会使线程的事务状态处于输入方法之前的状态。