将Uknown / New MongoDB字段映射到Map / List - Java

时间:2014-10-24 15:17:54

标签: java mongodb playframework-2.0

我有一个Mongo数据库,正在使用Java中的Play Framework构建REST API。我想使用像MongoJack或PlayJongo之类的某种映射器将我的Mongo查询结果映射到POJO。

我的问题是我不想在我的POJO中指定所有/新字段。我想要做的是将所有未映射的字段放入捕获所有Map作为POJO的一部分。这样,添加的新字段仍然可以在API响应中返回,而Java应用程序不必知道它们。

以下是一个例子:

Mongo文件:

{
  _id: 1234,
  mappedString: "Foo",
  mappedInt: 544,
  unMappedString: "Test",
  unMappedInt: 12
}

Java Class

public class Bar {
    private int _id;
    private String mappedString;
    private int mappedInt;

    private Map<String, Object> unMappedFields;
}

然后我希望unMappedFields字段中有两个条目是&#34; unMappedString&#34;和#34; unMappedInt&#34;与价值观#34;测试&#34;和12分别。

有没有办法用Mongo POJO映射器实现这一点?我是否无法找到有关这是否可能的任何信息。

1 个答案:

答案 0 :(得分:0)

为什么不将mongo存储为:

{
  _id: 1234,
  mappedString: "Foo",
  mappedInt: 544,
  unMappedFields: 
  {
  unMappedString: "Test",
  unMappedInt: 12
  }
}

我使用过morphia,这个案例会被直接解析。