spring中的事务传播

@Transaction
public void bigold(){
  didi();
  //出线异常
  int a = 10/0;//老大的方法肯定要回滚,小弟的方法要不要回滚
}

@Transaction
public void didi(){

  //小弟异常,老大要不要回滚
}

事务的传播特性是:老大调用小弟时,小弟的方法怎么办。

//死活不要事务
Nerver:老大没有事务,就执行。老大有事务,小弟就不执行。
NOT_SUPPORTED:没有就以非事务,老大有事务就把老大就把老大挂起。

//可有可无
SUPPORTS

//必须有事务
REQUIRES_NEW:老大没有事务就给他新建一个事务,我还是按照我的事务进行;如果老大有事务老大的事务还是老大的,我继续执行我的。
NESTED: 嵌套事务
REQUESTED: 如果老大没有事务就新建一个事务。如果老大有事务就使用老大的事务。
MANDTORY: 如果老大没有事务,就抛出异常。如果有,就使用当前自己的事务。

猜你喜欢

转载自www.cnblogs.com/kltsee/p/13394386.html