** 2019-12-09 13:13:07 **
今天得到反馈bug:班级excel批量导入之后,删除一个班级会导致班级批量删除...
有问题的代码
@DeleteMapping("/{id}")
@ApiOperation(value = "删除单个班级数据")
@LyraLog("删除班级")
public R<Object> deleteClassById(@PathVariable Long id) {
if (schoolClassService.removeById(id)) {
return R.ok("删除成功");
}
return R.failed("删除失败");
}
看到这段代码发现问题不止批量删除一个 emmmmm ,连数据判断都没... 然后我前后端都加了日志输出,加了个判断。排查问题。
2.0
写的时候发现一点问题:Long?行吧,那就Long把
最后写成。
@DeleteMapping("/{id}")
@ApiOperation(value = "删除单个班级数据")
@LyraLog("删除班级")
public R<Object> deleteClassById(@PathVariable Long id) {
log.info(">>>>>>>>>>>>> 删除id : {} ", id);
if (StringUtils.isEmpty(id.toString())) {
return R.ok("删除失败,数据异常。");
}
if (schoolClassService.removeById(id)) {
return R.ok("删除成功");
}
return R.failed("删除失败");
}
发现问题
1.导入数据!主键唯一,没有问题
2.前后端接收到的id对应上了,没有问题! 查看sql,吓一跳,删除了三条???
3.数据库查询该id
我发现导入数据中的id确实只有一个啊,但是我看到导入数据的id有三条比较近。
该不会就是这三条被删了把?我刷新数据库。
解决
把Long改为String即可。这应该算是MybatisPlus的bug???