Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 关于Spring事务传播的问题_Java_Spring_Transactions - Fatal编程技术网

Java 关于Spring事务传播的问题

Java 关于Spring事务传播的问题,java,spring,transactions,Java,Spring,Transactions,我有一个关于Spring事务传播的问题 假设我使用@Transactional(propagation=propagation.REQUIRED)来注释方法m1()。当执行逻辑进入m1()时,如果已经有事务,m1()将使用该事务。在m1()之后,事务会怎样?它将结束还是仍然开放?(如果我在另一个方法中调用m1(),调用之后还有其他事情要做) 总之,我想知道当退出带注释的方法时,事务结束还是仍然保持打开状态 非常感谢。传播。必需的(文档化)将创建新事务(如果当前线程不存在),或者将加入现有事务(如

我有一个关于Spring事务传播的问题

假设我使用
@Transactional(propagation=propagation.REQUIRED)
来注释方法
m1()
。当执行逻辑进入
m1()
时,如果已经有事务,
m1()
将使用该事务。在
m1()
之后,事务会怎样?它将结束还是仍然开放?(如果我在另一个方法中调用
m1()
,调用之后还有其他事情要做)

总之,我想知道当退出带注释的方法时,事务结束还是仍然保持打开状态


非常感谢。

传播。必需的
(文档化)将创建新事务(如果当前线程不存在),或者将加入现有事务(如果存在)


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

嗨,斯塔夫曼,关于我的问题,其他传播级别如何?@Yousui:各种传播级别及其影响都记录在我发布的链接中。谢谢斯塔夫曼,在仔细阅读您的答案并进行一些测试之后,我已经理解了spring事务传播策略。非常感谢您的帮助。@Yousui您可以发布您测试过的场景吗?我在理解所需与所需之间更精细的复杂性方面遇到了困难。我的事务边界是单独定义的,每个操作都是从外部流调用的,因此我基本上应该按顺序查看操作,但我仍然遇到问题。