@Override public boolean saveOrEdit(TrainBookType bookType) { //先拿到所有的图书分类 List list = this.list(); //遍历比较 for (TrainBookType trainBookType : list) { String ExistingBook = trainBookType.getBookName(); //当前图书分类名称 String bookName = bookType.getBookName(); if (Str.isNotEmpty(bookType.getId())) { if (bookName.equals(ExistingBook) && !bookType.getId().equals(trainBookType.getId())) { throw new BsException('图书类型' + bookName + '已经存在'); } } else { if (bookName.equals(ExistingBook)) { throw new BsException('图书类型' + bookName + '已经存在'); } } } if (Str.isNotEmpty(bookType.getId())) { return this.updateById(bookType); } else { return this.save(bookType); } }

问题:如果是编辑图书分类,保存时会直接返回,不会执行更新操作。

修改点:

  1. 在判断是否重名时,需要判断当前编辑的图书分类是否与其他已存在的图书分类重名,如果不是才能继续更新操作,因此需要加上 && !bookType.getId().equals(trainBookType.getId())。
  2. 在判断是否执行更新操作时,需要判断是否为新增操作,如果是则执行保存操作,否则执行更新操作。
Java 代码优化:图书分类保存或编辑功能的正确实现

原文地址: https://www.cveoy.top/t/topic/mGCO 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录