我将 Morphia 与 Play Framework 2.1 项目和 MongoDB 数据库一起使用,但在检索某些数据时遇到了问题。
我有一个 A 类,它和 @Entity 存储在一个集合中。但是那个类 A 有一个 @Embedded List 属性,这个类 B 是抽象的并且有多个实现。
但是这个 Class B 也有一个 @Embedded ClassC 属性,这个 Class C 也是抽象的,也可以有多个实现。
我认为这种结构不能“按原样”使用,而 Morphia 可以处理它。在我的数据库中,对象存储正确,没有错误。
{
"_id" : ObjectId("5163c9131a887c8e5aea8d5f"),
"className" : "package.to.ClassA",
"list" : [
{
"propClassB" : [
{
"className" : "package.to.an.ImplementationOfClassB",
"propClassC" : {
"className" : "package.to.an.ImplementationOfClassC"
}
}
]
}
]
}
A类被标记为@Entity,
B类被标记为@Embedded(和@Polymorphic,但我不认为它被使用)
C类被标记为@Embedded(和@Polymorphic)
难道我做错了什么 ?谢谢大家!