您的位置:首页 > Web前端

error:Found shared references to a collection:

2017-09-11 11:26 1231 查看
错误: Found shared references to a collection:

原因:BeanUtil.copyProperties()的方式复制一个实体bean,如果这个实体bean有一个集合属性,因为这个方法只是做了一个浅拷贝,所以新拷贝的实体跟旧的实体引用了同一个集合,而这个在hibernate中是不允许的,所以报错。

解决:在进行copyProperties拷贝后,新建一个集合,将原来的集合元素添加进去,并赋值给新拷贝的实体。

例:       

       BeanUtils.copyProperties(oldApplications, newApplications);

       Set<ApplicationsUniv> appSet = oldApplications.getApplicationsunivs();           

        if(null!=appSet || !appSet.isEmpty()){  

            Set<ApplicationsUniv> newappSet = new  HashSet<ApplicationsUniv>() ;

            for(ApplicationsUniv appuniv : appSet){  

                newappSet.add(appuniv);  

            }  

            newApplications.setApplicationsunivs(newappSet);

        }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐