Java 在方法上添加事务 @Transactional ,使用 try{}catch 事务回滚失效解决办法

2022-08-19 08:19:27

在服务层的方法上添加事务注解,如下:

在这里插入图片描述
注解代码:@Transactional
以上事务注解默认 是对RuntimeException() 异常进行回滚,
但是如果我们在方法中使用了try {} catch 则默认的回滚就失效了

解决使用 try{}catch 回滚失效的事件

第一种方法:在catch中抛出RuntimeException()异常
try{....}catch(Exception e){
    logger.error("",e);//抛出 RuntimeException 异常,让事务进行回滚thrownewRuntimeException;}
第二种方法 使用TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();

如下:

try{....}catch(Exception e){
    logger.error("",e);
     e.printStackTrace();
     sponseVo.setResult("error");//返回错误信息提示内容
     sponseVo.setErrorMsg(vo1.getMessage());//这里是因为我项目里面有一项不支持事务所以需要写删除方法deleteMx(vo1);//让事务进行回滚TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();}
以上是个人在学习工作中遇到的问题,在此记录笔记,学习使用
  • 作者:weixin_47056195
  • 原文链接:https://blog.csdn.net/weixin_47056195/article/details/123891550
    更新时间:2022-08-19 08:19:27