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

Java 用MongoDB/Morphia中的对象声明性地包装数组元素,java,mongodb,morphia,Java,Mongodb,Morphia,我有一个传统的DB结构,其中每个数组元素都包装为一个键值: "field" : [ { "_id" : ObjectId("123456789012345678901234") }, { "_id" : ObjectId("123456789012345678901235") } ] 我可以在不引入中间对象的情况下用Java建模吗? 比如说 @SomeMagicAnnotation("_id") List<ObjectId> field; 由于这些文档

我有一个传统的DB结构,其中每个数组元素都包装为一个键值:

"field" : [
  {
    "_id" : ObjectId("123456789012345678901234")
  }, {
    "_id" : ObjectId("123456789012345678901235")
  }
]
我可以在不引入中间对象的情况下用Java建模吗? 比如说

@SomeMagicAnnotation("_id")
List<ObjectId> field;

由于这些文档,Morphia需要映射类结构。但是,您可以使用@PostLoad对该数组进行迭代,并仅使用那些ObjectId值创建一个新数组。一旦有了这个新数组,就可以使用putfield newArray将它放回DBObject。这将使它看起来像Morphia的ObjectID值的裸数组,Morphia可以将它映射到您的列表。

这是包装类的一个有趣的替代方案。也许不那么明显,我想。谢谢你的回答!