如果同一个方法需要同时进行两条sql的update 那么此时为了原子性,需要运用到事物。
@Transactional
@ApiOperation("上移")
@RequestMapping(value = "/upExamLib", method = RequestMethod.PUT)
public Result upExamLib(@Valid @RequestBody HomeUpForm homeForm) {
ExamLib examLib = examLibService.getExamLibById(homeForm.getId());
ExamLib examLib1 = examLibService.getExamLibById(homeForm.getUid());
if (null == examLib || null == examLib1) {
return ResultUtil.sendErrorMessage("上移失败!");
}
boolean flag = examLibService.updateExamLibSort(examLib1.getId(), examLib.getSort());
boolean flag1 = examLibService.updateExamLibSort(examLib.getId(), examLib1.getSort());
if (flag && flag1) {
return ResultUtil.sendSuccessMessage("上移成功!");
} else {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return ResultUtil.sendErrorMessage("上移失败!");
}
}