Spring:复制对象而不将映射设置为null。

时间:2016-03-10 14:17:05

标签: java spring spring-mvc

我正在开发一个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模型或类似时添加一行。我能做什么?谢谢。

1 个答案:

答案 0 :(得分:0)

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

copyProperties(Object source, Object target, String[] ignoreProperties) 
  

此方法将复制给定源bean的属性值   进入给定的目标bean,忽略给定的“ignoreProperties”。

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