使用MongoDB / Morphia中的对象声明性地包装数组元素

时间:2017-01-16 14:55:07

标签: java mongodb morphia

我有一个遗留数据库结构,其中每个数组元素都被包装为键值:

"field" : [
  {
    "_id" : ObjectId("123456789012345678901234")
  }, {
    "_id" : ObjectId("123456789012345678901235")
  }
]

我可以在Java中对其进行建模而不引入中间对象吗? 例如。

之类的东西
@SomeMagicAnnotation("_id")
List<ObjectId> field;

1 个答案:

答案 0 :(得分:1)

由于这些文档,Morphia需要一个类结构来映射。但是,您可以使用@PostLoad迭代该数组并创建仅包含ObjectId个值的新数组。拥有此新阵列后,您可以将其放回DBObject put("field", newArray)。这将使它看起来像Morphia的一大堆ObjectID值,然后可以将其映射到List<ObjectID>