关于springboot中插入sql事务回滚操作

这里以控制层做示范

	@PostMapping("/Maintenance")
    @ResponseBody
    @Transactional(rollbackFor = Exception.class)    //事务回滚需要的注解
    public BaseResponse Maintenance(@RequestBody Map map) throws Exception{
        BaseResponse response=null;
        try {
            response = new BaseResponse(StatusCode.Success);
            List<Map<String,String>> li = (List<Map<String,String>>)map.get("submit");
            for(Map m :li){
                assetbarcodeService.Maintenance(m);
                response.setData(m);
            }
        }catch(RuntimeException r){
            response = new BaseResponse(StatusCode.ERROR);
            //因为是在try catch 里面所以需要代码手动去踹他一脚,如果没用就不需要会自动回滚
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
        } catch (Exception e){
            response = new BaseResponse(StatusCode.Fail);
            //因为是在try catch 里面所以需要代码手动去踹他一脚,如果没用就不需要会自动回滚
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
        }
        return response;
    }

你可能感兴趣的:(java,事务)