比如
class ServiceA{
@Transactional
public void methodA(){
mapper1.method1();
mapper2.method2();
serviceB.methodB();
}
}
class ServiceB{
@Transactional(propagation=Propagation.required_new)
public void methodB(){
.....
}
}
那当调用ServiceA.methodA是不是就开启了一次数据库会话,但是有两次事务
@Transactional,生效需要serviceA 实现接口。Aop 代理开启事务。 service b同理
事务的传播级别默认是request,ServiceB 上的是required_new 会新开启一个事务。会有两个事务。