2

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

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

有没有一种简单的方法可以将部分 bean 合并到不涉及硬编码映射过程的完整 bean 中?

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

4

2 回答 2

1

您可以将推土机与自定义转换器(用户指南:第 49 页)一起使用,以验证目标是否已被填充。

推土机有一个很棒的文档。可以很容易地集成在spring / eclipse中。你可以试一试

于 2013-06-06T12:12:24.177 回答
0

我没有完整的解决方案,但有一个大纲:

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

所以我会尝试将 JSON 作为Jackson Tree Model。这样,您可以遍历所有节点并自己更新 bean。

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

  1. 从 JSON 模型中获取 ID
  2. 加载豆
  3. 遍历所有 JSON 节点,忽略不可变的节点(id,其他危险字段)
  4. 使用 Java Bean API 发现属性
  5. 使用 Spring 数据转换助手将 JSON 数据转换为 Java 类型。
  6. 自己打电话给二传手
  7. 保存修改后的bean
于 2013-06-06T12:11:15.177 回答