我有实体A和实体B,它们扩展了实体A.
实体A - 在供应商捆绑中。 实体B - 在/ src包中。
我搜索了很多时间,只有解决方案适合我。它在Doctrine事件ClassMetadataListener
上使用loadClassMetadata
。
但扩展实体B不起作用。我需要将实体A的所有属性添加到实体B。
我无法理解为什么。
答案 0 :(得分:4)
使用Doctrine2时,不能简单地扩展类。
查看chapter 6. Inheritance Mapping上有关如何在实体类上实现继承的文档。
您可能对in chapter 6.1. Mapped Superclasses感兴趣。
映射的超类是一个抽象或具体的类,它为其子类提供持久的实体状态和映射信息,但它本身不是一个实体。通常,这种映射超类的目的是定义多个实体类共有的状态和映射信息。
为此,您必须将@MappedSuperclass
注释用于实体基类。
答案 1 :(得分:1)
在A的顶部添加@MappedSuperclass注释。这就足够了:)