Springboot @Transactional注解捕获异常事务回滚

需求:捕获到@Transactional中的异常【前端需要返回错误格式】,同时不影响事物回滚【后端数据保持完整】

1、正常情况下加注解@Transactional和try catch捕获异常会让注解失效

2、解决办法如下代码【service层】

    @Transactional(rollbackFor = Exception.class)
	public String allOption() {
		try {
			userMapper.delete(3);
			User user = new User();
			user.setId(2);
			user.setAge(1000);
			user.setPassword("9999");
			userMapper.update(user);
			
			int i = 1/0;
			return "success";
		} catch (Exception e) {
			TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//关键
			return e.getMessage();
		}
	}

自己整理的最简化springboot-mybatis-demo,
https://gitee.com/tcyj/springboot-mybatis-demo.git

你可能感兴趣的:(springboot)