以下是新增时的防重名校验,如何实现编辑时的防重名校验(编辑时自身cd已经存在)
public RestfulResponse
你的编辑接口需要传id进来,你的对象不是有id嘛,你查到以后,对比一下id,id相同则放行
public RestfulResponse updateInnerById(BaseMetadata baseMetadata) {
LambdaUpdateWrapper queryWrapper = Wrappers.lambdaUpdate();
queryWrapper.eq(BaseMetadata::getUserCd, baseMetadata.getUserCd());
BaseMetadata cc = baseMapper.selectOne(queryWrapper);
// 已经存在这样的用户cd了就不在添加
if (cc != null && !cc.getId().equals(baseMetadata.getId())) {
return RestfulResponse.failure("用户代码已存在");
} else {
updateById(baseMetadata);
return RestfulResponse.success("更新成功");
}
}
上面老哥说的是对的
但是,有个更好的方案,就是你更新的时候,是要传某个参数的,你要校验重名,首先需要排除自己的,那么查询条件可以加上 where id!='xxxxxxx' 这个id就是你修改这条数据id,这样就排除校验自己了。