添加编辑时数据不可重复验证

1 今天在编辑时,发现了一个问题,想了很一会时间。就是编辑时:判断编辑后的数据在数据库中是否重复。

当时想的是:编辑时,直接判断传过来的值是否在数据库中已经存在,这样乍一看是可以的,但是后来发现不行,因为这样,你原有的数据就保存不进去了,因为既然是编辑,那么在数据库中肯定是早已存在的。

比如我在编辑的时候,要判断我这个编辑后校企名称是否重复,如果按照之前的逻辑所想,那么肯定是不行的,因为这条数据肯定早已存在。

所以可以向以下这样,根据id来进行判断:

首先先将根据名称将数据查询出来,然后判断id与传过来的id是否一样,如果不一样并且名称也不一样那么肯定就是重复的数据了

        LambdaQueryWrapper<LessonTeacherPlan> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(LessonTeacherPlan::getTeacherName,dto.getTeacherName());
        List<LessonTeacherPlan> lessonTeacherPlans = baseMapper.selectList(queryWrapper);

        //防止编辑时修改相同的名称
        lessonTeacherPlans.forEach(lessonTeacherPlan -> {
            if (!lessonTeacherPlan.getId().equals(dto.getId()) && lessonTeacherPlan.getTeacherName().equals(dto.getTeacherName())){
                throw new MyParameterException("名称已存在");
            }
        });

 

posted @ 2022-08-31 10:08  小猪不会叫  阅读(60)  评论(0)    收藏  举报  来源