您可以显式禁用该
className属性:
@Entity(noClassnameStored = true)
如果只有一个实体类,我通常会抑制该属性。如果要对我的实体进行子类化,则将明确启用它(这是默认设置,但可以肯定)。
如果我没记错的话,Morphia足够聪明,即使没有属性
className(基于反射),也可以根据属性猜测正确的子类。因此,如果您在 Person
的子类 Developer 中具有 mongoKnowledge 属性,而您的子类 Manager 没有属性,Morphia将知道具有
mongoKnowledge的 文档必须属于 Developer 类。因此严格来说,仅当您的子类具有相同的属性时才需要;但是,我不会太依赖它。
__
className
我没有尝试重命名实体类,但可能会引起问题。提供
@Polimorphic注释并将其修复在一起是一个长期存在的问题。请参阅https://pre.google.com/p/morphia/issues/detail?id=22
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)