Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.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
Spring 使用@Transactional Behavior所需的默认传播_Spring_Transactions - Fatal编程技术网

Spring 使用@Transactional Behavior所需的默认传播

Spring 使用@Transactional Behavior所需的默认传播,spring,transactions,Spring,Transactions,我知道,当你在一个类上放置say@Transactional时,如果你依次调用它们,其中的每个方法都将作为单个事务的一部分执行,因为默认的spring事务行为是必需的。见文件。假设我有一个类,比如: @Service @Transactional public class ActorServiceImpl implements ActorService { public void method1(){} public void method2(){} } 但是,,我

我知道,当你在一个类上放置say@Transactional时,如果你依次调用它们,其中的每个方法都将作为单个事务的一部分执行,因为默认的spring事务行为是必需的。见文件。假设我有一个类,比如:

 @Service
 @Transactional
 public class ActorServiceImpl implements ActorService
 {
    public void method1(){}

    public void method2(){}
 }

但是,,我想知道如果method1抛出异常并且必须回滚事务,会发生什么情况,那么我猜method2将永远不会执行,因为由于method1中的异常,事务已经提交?

如果按顺序调用method1和method2,则会得到两个单独的事务,而不是一个。我不这么认为。看这张照片相信我它是。。。如果您从另一个事务性方法依次调用method1和method2,则只能得到一个事务。看这里。如果你能证明这一点,或者至少提供一些文件,说明一些事情,我会相信你的different@george在您链接到的图片中,一个bean的事务方法调用另一个bean的另一个事务方法。因此,第二种方法在与第一种方法相同的事务中执行。这与先调用事务性方法,然后再调用第二个事务性方法非常不同。在这种情况下,将为第一个方法启动事务,并在其返回后提交/回滚,然后为第二个方法启动第二个事务,并在其返回后提交/回滚。