专业编程基础技术教程

网站首页 > 基础教程 正文

【爆款工具】项目中,try catch代码块中,一招让你手动回滚事务

ccvgpt 2024-08-11 15:01:08 基础教程 8 ℃

springboot的项目中,如果用try catch包裹的代码块,由于异常被捕获,导致标记了@Transactional无法生效,那么如何进行处理这个问题:

  1. 确保启动类中已经标记了@EnableTransactionManagement注解
  1. 方法上,添加注解@Transactional(rollbackFor = Exception.class)
  1. 方法体中,try catch 添加异常处理模块
@Transactional(rollbackFor = Exception.class)
@Override
public R test(String id) {
    try {
        //数据库的入库操作
    } catch (Exception e) {
        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
        log.error("入库失败:", e);
    }
    return R.ok("入库失败");
}
  1. catch代码块中添加TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();如有异常,则进行回滚处理。

【爆款工具】项目中,try catch代码块中,一招让你手动回滚事务

Tags:

最近发表
标签列表