空继承实体Symfony2


empty inherited entity Symfony2

我有这样一个模式

abstract class Class1
    attr1
    attr2
class Class2 extends Class1
    /**
    * @ORM'OneToMany("Class3")
    */
    attr3Array
class Class3
    /**
    * @ORM'ManyToOne(targetEntity="Class2")
    */
    attr3

这只是一个伪代码来表示我的问题。当我尝试生成数据库时,我有这个错误

[Doctrine'ORM'Mapping'MappingException]
Entity 'Class2' has to be part of the discriminator map of 'Class1' to be properly mapped   
  in the inheritance hierarchy. Alternatively you can make 'Class2' an abstract class to avoid this exception from occurring.  

但是我想创建Class2的实例,我不想要一个抽象的Class2还有其他方法来建模我的实体吗?

尝试将父类定义为映射的超类。如果有@ORM'Entity注释,您需要删除它。

/**
 * @ORM'MappedSuperclass
 */
abstract class Class1
{
}

如果Doctrine不喜欢MappedSuperclasses是抽象的,你也可以把这个类设为非抽象的。

关于继承映射的更多信息可以在文档中找到。你也可以在那里找到一个更适合你需要的解决方案。