做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", "资源名重复"));
                }
            }
        }

 

posted @ 2019-12-27 13:57  琴声清幽  阅读(991)  评论(0编辑  收藏  举报