情况1:接口方法没有添加 @Transactional 注解,事务不会开启,如果该方法体内调用其他有事务的方法时,且调用方法为this.Method 时,那么被调用的方法即使添加了 @Transactional 注解 也不会有事务产生(如调用方法1)。
情况2:接口方法没有添加 @Transactional 注解,但是使用service.Method() 调用其他有事务的接口方法,那么被调用的方法会产生事务(如调用方法2)。
调用方法1:
pubilc serviceImpl (){
@Overide
pubilc void add(){
add-sql;
this.B();
}
调用方法2:
pubilc serviceImpl (){
@Overide
pubilc void add(){
add-sql;
service.B();
}
@Overide@Transaction
public void update(){
update-sql;
throw new RuntimeException();
}
}