Spring中try-catch后手动回滚事务
如果正常使用声明式事务注解的方式时,代码异常后是可以回滚的,但是一般情况下会对代码进行catch,自定义返回值,所以异常被catch后必须要手动回滚,或者抛出新的异常
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
try {
xxx
}catch (Exception e) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
logger.error("操作失败: ${}", e.getMessage());
logger.error("请求参数: ${}", params);
baseResp.setErrCode(ErrCode.ERR_INVOKER_EXCEPT.getErrCode());
baseResp.setErrMsg(e.getMessage());
return baseResp;
}
评论区