Spring transaction

题目1:

账户1的初始金额为500,更新金额为501,并在更新账户1的过程中发现异常。问有和没有@transaction配置,结果会有什么不同?

Spring transaction

假设:x=[有、没有]注解,y=账户1的金额
结果:
当x=[没]注解,y=501;
当x=[有]注解,y=500

题目2:

与题目1一样,不同的是有@transaction,这时更新账户1时发生异常。问内部处理异常(try..catch..)和抛出异常(throw..),结果会有什么不同?

这里写图片描述

假设:x=异常处理方式,y=账户1的金额
结果:
当x=内部处理异常,y=501;
当y=抛出异常,y=500

小结

1,@transaction属于java事务处理
2,当且仅当@transaction注解的方法内发生异常,且向外抛出时触发。

参考资料

spring官网指南:transaction manager
Spring Transaction属性之Propagation
java事务处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值