@Transactional使用

1 篇文章 0 订阅

以下测试均使用@Transactional默认设置!

controller–>serviceA–>serviceB

1.1. serviceA(添加注解)–>serviceB(添加注解,并抛出异常)------------------------>结果A和B都回滚

1.2. serviceA(添加注解,并抛出异常)–>serviceB(添加注解)------------------------>结果A和B都回滚

结论:不同的类中,两个不同的方法A和B(A调用B),两个方法都添加有事务注解,不论哪一个方法抛出异常,两个方法都会进行回滚

2.1 serviceA(添加注解)–>serviceB(不添加注解,并抛出异常)----------------------->结果A和B都回滚

2.2 serviceA(添加注解,并抛出异常)–>serviceB(不添加注解)----------------------->结果A和B都回滚

2.3 serviceA(不添加注解)–>serviceB(添加注解,并抛出异常)----------------------->结果A不回滚、B回滚

2.4 serviceA(不添加注解,并抛出异常)–>serviceB(添加注解)----------------------->结果A不回滚、B不回滚

结论:

  • 不同类中,调用方添加注解,不论调用方还是被调用方抛出异常,结果双方都会进行回滚;
  • 不同类中,调用方不添加注解,不论调用方还是被调用方抛出异常,结果双方都不会进行回滚;

controller–>serviceA.test01()–>serviceA.test02()

1.1. serviceA.test01()(添加注解)–>serviceA.test02()(添加注解,并抛出异常)------------------------>结果test01()和test02()都回滚

1.2. serviceA.test01()(添加注解,并抛出异常)–>serviceA.test02()(添加注解)------------------------>结果test01()和test02()都回滚

结论:相同类中,两个不同的方法test01和test02(test01调用test02),两个方法都添加有事务注解,不论哪一个方法抛出异常,两个方法都会进行回滚

2.1 serviceA.test01()(添加注解)–>serviceA.test02()(不添加注解,并抛出异常)----------------------->结果test01()和test02()都回滚

2.2 serviceA.test01()(添加注解,并抛出异常)–>serviceA.test02()(不添加注解)----------------------->结果test01()和test02()都回滚

2.3 serviceA.test01()(不添加注解)–>serviceA.test02()(添加注解,并抛出异常)----------------------->结果test01()不回滚、test02()不回滚

2.4 serviceA.test01()(不添加注解,并抛出异常)–>serviceA.test02()(添加注解)----------------------->结果test01()不回滚、test02()不回滚

结论:

  • 相同类中,调用方法添加注解,不论调用方还是被调用方抛出异常,结果双方都会进行回滚;
  • 相同类中,调用方法不添加注解,不论调用方还是被调用方抛出异常,结果双方都不会进行回滚;
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值