事务回滚,关键点1:TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();

关键点2:需要在待处理的service方法和下层所有涉及到的service方法前面都加上@Transactional注解

关键点3:需要在待处理的service方法中手动抛出异常,或者在下层涉及到的service方法中抛出异常


    @Transactional
    public OutputObject getTask(String token, String npcId) {
        OutputObject outputObject = null;
        try {
            if (null == outputObject) {
                outputObject = createNewTask(npcId);
                if ("0000".equals(outputObject.getReturnCode())) {
                    FantasyTaskPackBO fantasyTaskPackBO = (FantasyTaskPackBO) outputObject.getExt1().get("taskPack");
                } else {
                    throw new Exception("创建新任务异常");
                }
            }
        } catch (Exception e) {
            log.error("获取任务异常,全部回滚" + e);
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
        }
        return outputObject;
    }

 

最后修改于 2019-06-24 11:00:14
如果觉得我的文章对你有用,请随意赞赏
扫一扫支付
上一篇