在服务层的方法上添加事务注解,如下:
注解代码:@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();}