spring事务无异常回滚 [spring rollback without exception]

本文介绍在复杂的业务逻辑中,如何在不抛出异常的情况下完成Spring事务的回滚。通过设置TransactionInterceptor.CurrentTransactionStatus.RollbackOnly为true来实现。适用于需要返回异常代码和其他信息的场景。
在使用spring的时候通常我们可以通过抛出异常的方式完成回滚,当然是runtime的异常,但是在一些复杂业务逻辑1中,往往我们需要service返回的不只是异常信息,很可能是异常的code,甚至一些其他的信息。
这个时候我们就不能抛出异常,那么这个时候可以通过一下方法完成数据库的回滚:

TransactionInterceptor.CurrentTransactionStatus.RollbackOnly = true
或者
TransactionInterceptor.currentTransactionStatus().setRollbackOnly();
这个应该是不同版本的使用方式。

参考地址:
http://forum.springframework.net/archive/index.php/t-4264.html
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值