数据库回滚-@Transactional

使用@Transactional,当方法内出现异常时进行数据库回滚

注意:引入spring包的@Transactional注解

1、内部调用时,被调用方法的事务声明将不起作用,@Transactional需放在impl实现类才生效

2、方法使用public可见度修饰才生效

  @Transactional(rollbackFor = Exception.class)
    @Override
    public BaseResponse approvalPerson(Person person) throws Exception{
        BaseResponse response = new BaseResponse();
        try {
            Boolean ret = personMapper.approvalPerson(person);
            if (ret && person.getStatus() == 2){
                。。。
            }
        } catch (Exception e) {
            logger.error("approvalPerson error: ",e);
            response.setCode(DefaultErrorCode.ERROR.getCode());
            response.setMsg("审批失败");
            response.setData(e.getMessage());
            throw new Exception("test4 error");
        }
        return response;
    }

 

posted on 2020-04-20 10:43  LJD泊水  阅读(837)  评论(0编辑  收藏  举报