Inheritance 原则ODM-指定MappedSuperclass的集合名称

Inheritance 原则ODM-指定MappedSuperclass的集合名称,inheritance,doctrine-odm,mappedsuperclass,Inheritance,Doctrine Odm,Mappedsuperclass,条令ODM有注释(集合)来指定集合应使用的名称。它默认为类名,但很容易更改 然而,我已经映射了被其他类扩展的超类。继承类型为单集合,此集合以基抽象类命名。我怎样才能改变这个名字 假设我有一个类基,它被扩展了。但我希望集合是命名项。很明显,我不想在所有扩展类中更改注释,因为它非常冗余并且容易出错。如 映射的超类不能是文档,并且不可查询 因此,它无法映射到任何集合。您需要有一个类,该类指定了@Document和@InheritanceType注释,从中可以扩展更多文档(该类可以是abstract)。

条令ODM有注释(集合)来指定集合应使用的名称。它默认为类名,但很容易更改

然而,我已经映射了被其他类扩展的超类。继承类型为单集合,此集合以基抽象类命名。我怎样才能改变这个名字

假设我有一个类基,它被扩展了。但我希望集合是命名项。很明显,我不想在所有扩展类中更改注释,因为它非常冗余并且容易出错。

映射的超类不能是文档,并且不可查询


因此,它无法映射到任何集合。您需要有一个类,该类指定了
@Document
@InheritanceType
注释,从中可以扩展更多文档(该类可以是
abstract
)。您可以将它放在映射的超类之间,也可以直接使用它。另外,由于有了
@文档
映射类,您可以在返回具体类的同时查询它。

谢谢。我错过了MappedSuperclass的要点。我总觉得它是抽象的别名,每个抽象类都应该是MappedSuperclass。将映射的超类更改为document(并保持其抽象)解决了我的问题。