Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.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@Transactional服务。如果它调用另一个@Transactional服务会发生什么?_Java_Spring_Transactions_Spring Transactions - Fatal编程技术网

Java Spring@Transactional服务。如果它调用另一个@Transactional服务会发生什么?

Java Spring@Transactional服务。如果它调用另一个@Transactional服务会发生什么?,java,spring,transactions,spring-transactions,Java,Spring,Transactions,Spring Transactions,使用Spring,我将达到以下场景 我有一个服务必须是@Transactional,因为它调用多个DAO。但它也调用其他已经是事务性的服务 不知何故,我将调用嵌套的@Transactional服务 Spring会管理好吗?@Transactional没有任何明确的参数,使用传播=必需的。这意味着: 如果当前线程中没有事务,将创建一个新事务 如果存在事务,则将使用它 用@Transactional注释的第二个服务(嵌套服务)将在与第一个服务(外部服务)相同的事务中执行。你不需要做任何事 在某些

使用Spring,我将达到以下场景

我有一个服务必须是
@Transactional
,因为它调用多个DAO。但它也调用其他已经是事务性的服务

不知何故,我将调用嵌套的
@Transactional
服务


Spring会管理好吗?

@Transactional
没有任何明确的参数,使用
传播=必需的
。这意味着:

  • 如果当前线程中没有事务,将创建一个新事务
  • 如果存在事务,则将使用它
@Transactional
注释的第二个服务(嵌套服务)将在与第一个服务(外部服务)相同的事务中执行。你不需要做任何事


在某些情况下,如果要显式地将嵌套调用与外部调用分开,可以使用
propagation=REQUIRES\u NEW

Spring将它们全部分组在同一事务下