如何将一个bean合并到另一个bean中以进行部分更新

时间:2013-06-06 12:06:18

标签: java spring rest

我想实现http-patch方法对资源进行部分更新。

我有一个用Jackson反序列化的bean,它包含一些有效的属性。另外,我有一个当前存储在我的应用程序中的bean。

是否有一种简单的方法可以将部分bean合并到不会对映射过程进行硬编码的完整bean中?

我需要能够至少部分地控制进程(没有id的映射,没有某些属性的映射)。

2 个答案:

答案 0 :(得分:1)

您可以将Dozer与自定义转换器(User guide:第49页)一起使用,以验证目标是否已填充。

推土机有一个很棒的documentation。可以轻松集成到spring / eclipse中。你可以尝试一下

答案 1 :(得分:0)

我没有完整的解决方案,只是大纲:

我觉得使用Java bean进行合并会很困难(你怎么知道哪些字段已经改变了?)

所以我试着将JSON作为Jackson Tree Model。这样,您可以迭代所有节点并自己更新bean。

这将使合并变得非常简单:

  1. 从JSON模型获取ID
  2. 加载bean
  3. 遍历所有JSON节点,忽略不可变的节点(id,其他危险字段)
  4. 使用Java Bean API发现属性
  5. 使用Spring数据转换助手将JSON数据转换为Java类型。
  6. 自己打电话给安装人员
  7. 保存修改后的bean