Spring事物

有两个方法m1()和m2(),m1()调用了m2

public void m1() {

      doSth();

      m2();

}

1. m1有事物,m2也有事物

1.1 m2的propagation=Propagation.REQUIRES_NEW

m2将开启一个新事物,运行在自己的新事物中,与m1点事物是不同的事物,如果m2报错,则m2回滚,m1是否回滚,要看m2报的是哪种类型的错误,如果是运行时异常且异常未被吃掉(catch住),则m1也回滚,如果不是运行时异常m1不回滚。

m1中可以通过noRollbackFor={XXX.class}指定事物的回滚规则,指定哪些异常不回滚。

1.2 m2的propagation=Propagation.REQUIRED

m1和m2运行在m1的事物中。

2.m1无事物, m2有事物

如果m2报错,则m2回滚,m1的代码是否执行成功,要看m2报的是哪种类型的错误,如果是运行时异常且异常未被吃掉(catch住),则m1的代码不会执行成功,如果不是运行时异常m1会执行成功。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值