做update业务时,name名唯一性校验,问题及解决
1. 在做update业务时,在更新name时,需要检查与存在的是否有重名的现象。碰到的问题是,如果简单的判断bean是否一致,会导致自己没有改名也报重复,如果根据size大小,有时又不准确。解决如下:
2.在入参封装的时候,会传入一个实体bean。这个bean,取得他的name后,然后查找获取一个bean类的集合,在这个list中,遍历他的每一个bean,的每一个id,如果存在不一样的id,就说明已经重名
3.如下,在这个例子中,authc是更新的bean。本例亲测试通过。
@RequestMapping("/authcUpdate/{id}") public Map authcUpdate(@Valid Authc authc,BindingResult error) { Map<String ,Object > map = new HashMap<String,Object> (); List<Authc> authcByResource = authcService.getAuthcByResource(authc); if(authcByResource.size()>0) { for (Authc authc2 : authcByResource) { //判断有没有重复id,如果有,则为本条修改的数据,如果是一条新的,说明还存在其他重复数据。 if(authc2.getId()!=authc.getId()) { error.addError(new FieldError("authc", "resource", "资源名重复")); } } }