spring手动回滚

1.在trycatch捕获后根据业务需要我们手动回滚事务。
2.手动回滚事务代码
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly()
3.但是我加上之后报出了一下错误
No transaction aspect-managed TransactionStatus in scope
4.经查询资料大部分都是说方法或者业务类上未加@Transaction注解,但是我加了还是会报错
5.后使用AopUtils.isAopProxy(Object object)发现这个类未被aop代理导致事务失效。
6.因项目原因,怎么被代理情况不一样,自寻选择
7.手动回滚可配合回滚点使用,设置回滚点
Object point = TransactionAspectSupport.currentTransactionStatus().createSavepoint();
8.回滚到事务点
TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
9.如何trycatch捕获异常后回滚数据并保存错误日志记录到日志表中
1.个人想到的是使用事物的传播机制 REQUIRED,REQUIRES_NEW
2.REQUIRED:如果有事务就加入事务,如果没有则新建事务
3.REQUIRES_NEW:不管有没有事务都新建事务,将原先事务挂起。
4.但由于在同一service层事务失效的原因,需要在日志service层保存日志。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值