用 MongoDB/Morphia 中的对象声明性地包装数组元素
Declaratively wrap array elements with objects in MongoDB/Morphia
我有一个遗留的数据库结构,其中每个数组元素都包装为一个键值:
"field" : [
{
"_id" : ObjectId("123456789012345678901234")
}, {
"_id" : ObjectId("123456789012345678901235")
}
]
我可以在 Java 中建模而不引入中间对象吗?
例如。像
@SomeMagicAnnotation("_id")
List<ObjectId> field;
Morphia 需要一个 class 结构来映射,因为这些文件。但是,您可以使用 @PostLoad
遍历该数组并创建一个仅包含 ObjectId
值的新数组。一旦你有了这个新数组,你就可以用 put("field", newArray)
把它放回 DBObject
中。这将使它看起来像 Morphia 的 ObjectID
值的裸数组,然后 Morphia 可以将其映射到您的 List<ObjectID>
.
我有一个遗留的数据库结构,其中每个数组元素都包装为一个键值:
"field" : [
{
"_id" : ObjectId("123456789012345678901234")
}, {
"_id" : ObjectId("123456789012345678901235")
}
]
我可以在 Java 中建模而不引入中间对象吗? 例如。像
@SomeMagicAnnotation("_id")
List<ObjectId> field;
Morphia 需要一个 class 结构来映射,因为这些文件。但是,您可以使用 @PostLoad
遍历该数组并创建一个仅包含 ObjectId
值的新数组。一旦你有了这个新数组,你就可以用 put("field", newArray)
把它放回 DBObject
中。这将使它看起来像 Morphia 的 ObjectID
值的裸数组,然后 Morphia 可以将其映射到您的 List<ObjectID>
.