事务回滚,关键点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
如果觉得我的文章对你有用,请随意赞赏
扫一扫支付

