关于春季交易传播的问题

Jus*_*ner 10 java spring transactions

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

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

十分感谢.

ska*_*man 20

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

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