Doctrine ODM - 为 MappedSuperclass 指定集合名称

Doctrine ODM - Specify collection name for MappedSuperclass

Doctrine ODM 有注解(集合)来指定集合应该使用哪个名称。它默认为 class 名称,但可以轻松更改。

不过我已经映射了 superclass,它由其他 classes 扩展。继承类型是单个集合,这个集合以基础抽象命名class。如何更改此名称?

假设我有 class 基地,它得到了扩展。但我希望将集合命名为 Items。我显然不想更改所有扩展 classes 中的注释,因为它非常多余并且容易出错。

documentation

中所述

A mapped superclass cannot be a document and is not queryable.

因此无法映射到任何集合。您需要有一个 class,其中指定了 @Document@InheritanceType 注释,进一步的文档将从中扩展(class 可以是 abstract)。您可以将它放在映射的 superclass 之间,也可以只使用它。还要感谢有一个 @Document 映射 class 你将能够查询它,同时有具体的 classes 返回。