Springs BeanUtils.copyProperties()vs Apache Commons BeanUtils.copyProperties

时间:2018-04-11 13:10:38

标签: java apache-commons apache-commons-beanutils spring-framework-beans

在这里尝试做一些简单的事情。获取Entity对象并将其相同名称的属性复制到另一个bean。

您可以使用Apache commons

执行此操作
<mongo:config-connection-string name="MongoDB_Config" 
    connectionString="mongodb://jdoe:myPass@localhost:27017?authMechanism=SCRAM-SHA-1"/>

但问题是我们可能有一些特定于实体bean的属性(像created,lastUpdated等时间戳这样的元数据),我们不想复制到目标bean和Apache Commons BeanUtils不支持忽略属性。我被推向了Spring BeanUtils的方向

org.apache.commons.beanutils.BeanUtils.copyProperties(source,target)

其中ignoreProperties是syou想要忽略的属性名称的字符串数组。现在问题似乎是在执行此属性复制时,它会使源对象的属性为空!由于源对象是一个Entity对象,在提交事务时具有强制id字段,因此我们得到一个HibernateException

org.springframework.beans.BeanUtils.copyProperties(source,target,ignoreProperties)

任何人都知道如何解决这个问题,或者您是否致力于使用其中一个?令我困惑的是,为什么公共图书馆在复制时不支持忽略属性,或者为什么springframework BeanUtils似乎执行剪切/粘贴而不是复制/粘贴。

0 个答案:

没有答案