首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring :复制对象而不将mappings设置为null。

Spring :复制对象而不将mappings设置为null。
EN

Stack Overflow用户
提问于 2016-03-10 22:17:05
回答 1查看 246关注 0票数 0

我正在做一个Spring-MVC项目,在这个项目中,我想要复制对象以实现复制功能。我一直在使用springFrameworkBeanUtils,它工作得很好。唯一的问题是我必须手动设置为不复制与该对象关联的所有映射对象。如果我不这样做,我会得到一个错误,说明DB中已经存在映射对象的条目。

我如何解决这个问题?

代码:

代码语言:javascript
复制
GroupCanvas destinationGroupCanvas = new GroupCanvas();
                BeanUtils.copyProperties(groupCanvas,destinationGroupCanvas);
destinationGroupCanvas.setMcanvasid(0);
// Below ones are the mappings as described in the model
destinationGroupCanvas.setFavoriteCanvasSet(null);
destinationGroupCanvas.setOwnedsection(null);

GroupCanvas模型映射:

代码语言:javascript
复制
@JsonIgnore
@OneToMany(mappedBy = "currentcanvas", fetch = FetchType.LAZY, cascade = CascadeType.REMOVE)
private Set<GroupSection> ownedsection = new HashSet<>();

@OneToMany(mappedBy = "favoriteCanvases", fetch = FetchType.LAZY, cascade = CascadeType.REMOVE)
private Set<FavoriteCanvas> favoriteCanvasSet = new HashSet<>();

我不想手动指定不复制关联。这对维护很有帮助,所以每次更改GroupCanvas模型或类似的代码时,我都不必返回到此代码并向其中添加一行。我能做什么?谢谢。

EN

回答 1

Stack Overflow用户

发布于 2016-03-10 22:38:22

我认为您可以通过向BeanUtils.copyProperties指定第三个参数来忽略不想复制的属性

代码语言:javascript
复制
copyProperties(Object source, Object target, String[] ignoreProperties) 

此方法会忽略给定的"ignoreProperties“,将给定源bean的属性值复制到给定的目标bean中。

我们通常会在项目中使用Converters将一种类型的对象转换为另一种类型。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35918956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档