Spring 使用@Transactional Behavior所需的默认传播
我知道,当你在一个类上放置say@Transactional时,如果你依次调用它们,其中的每个方法都将作为单个事务的一部分执行,因为默认的spring事务行为是必需的。见文件。假设我有一个类,比如:Spring 使用@Transactional Behavior所需的默认传播,spring,transactions,Spring,Transactions,我知道,当你在一个类上放置say@Transactional时,如果你依次调用它们,其中的每个方法都将作为单个事务的一部分执行,因为默认的spring事务行为是必需的。见文件。假设我有一个类,比如: @Service @Transactional public class ActorServiceImpl implements ActorService { public void method1(){} public void method2(){} } 但是,,我
@Service
@Transactional
public class ActorServiceImpl implements ActorService
{
public void method1(){}
public void method2(){}
}
但是,,我想知道如果method1抛出异常并且必须回滚事务,会发生什么情况,那么我猜method2将永远不会执行,因为由于method1中的异常,事务已经提交?如果按顺序调用method1和method2,则会得到两个单独的事务,而不是一个。我不这么认为。看这张照片相信我它是。。。如果您从另一个事务性方法依次调用method1和method2,则只能得到一个事务。看这里。如果你能证明这一点,或者至少提供一些文件,说明一些事情,我会相信你的different@george在您链接到的图片中,一个bean的事务方法调用另一个bean的另一个事务方法。因此,第二种方法在与第一种方法相同的事务中执行。这与先调用事务性方法,然后再调用第二个事务性方法非常不同。在这种情况下,将为第一个方法启动事务,并在其返回后提交/回滚,然后为第二个方法启动第二个事务,并在其返回后提交/回滚。