学无先后,达者为师

网站首页 编程语言 正文

spring 事务控制 设置手动回滚 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();

作者:Jothan Zhong 更新时间: 2024-01-11 编程语言

当我们需要在事务控制的service层类中使用try catch 去捕获异常后,就会使事务控制失效,因为该类的异常并没有抛出,就不会触发事务管理机制。怎样才能即使用try catch去捕获异常,而又让出现异常后spring回滚呢,可在catch中抛出运行时异常throw new RuntimeException(e)或者手动回滚TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();使得事务生效,异常回滚。

//假设这是一个service类的片段
 
try{ 
    //出现异常
} catch (Exception e) {
            e.printStackTrace();
           //设置手动回滚
            TransactionAspectSupport.currentTransactionStatus()
                    .setRollbackOnly();
        }
return  xxx;

原文链接:https://blog.csdn.net/qq_43985303/article/details/135265304

  • 上一篇:没有了
  • 下一篇:没有了
栏目分类
最近更新