我正在开发一个Spring-MVC项目,我想在其中复制对象以实现复制功能。我一直在使用来自BeanUtils
的{{1}},而且效果很好。唯一的问题是我必须手动设置不复制与该对象关联的所有映射对象。如果我不这样做,我会收到一个错误,即DB中的映射对象已经存在一个条目。
我该如何解决这个问题?
代码:
springFramework
GroupCanvas模型映射:
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模型或类似时添加一行。我能做什么?谢谢。
答案 0 :(得分:0)
我认为您可以通过将第三个参数指定为BeanUtils.copyProperties来忽略您不想复制的属性
copyProperties(Object source, Object target, String[] ignoreProperties)
此方法将复制给定源bean的属性值 进入给定的目标bean,忽略给定的“ignoreProperties”。
我们通常会在项目中使用Converters将一种类型的对象转换为另一种类型。