【发布时间】:2013-10-16 16:38:41
【问题描述】:
我在 Symfony2 中使用实体继承时遇到问题。这是我的两个课程:
use Doctrine\ORM\Mapping as ORM;
/**
* @Orm\MappedSuperclass
*/
class Object
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
}
/**
* @Orm\MappedSuperclass
*/
class Book extends Object
{
}
当我运行 php app/console dictionary:schema:create 时,我收到以下错误:
[Doctrine\ORM\Mapping\MappingException]
Duplicate definition of column 'id' on entity 'Name\SiteBundle\Entity\Book' in a field or discriminator column mapping.
这可能是什么原因造成的?
谢谢:)
更新:
你说得对,我错过了这个。现在我使用单表继承,两个类都是实体:
/**
* @Entity
* @InheritanceType("SINGLE_TABLE")
* @DiscriminatorColumn(name="discr", type="string")
* @DiscriminatorMap({"object" = "Object", "book" = "Book"})
*/
但我仍然收到相同的错误消息。
【问题讨论】:
-
你在尝试多重继承吗?如果没有,我邀请您阅读documentation about MappedSuperClass,尤其是黄色框。 “MappedSuperclass 不能是实体”
标签: php symfony doctrine-orm