Doctrine 2多级继承

时间:2013-05-10 19:25:41

标签: inheritance doctrine-orm

我在多级继承方面遇到了一些麻烦

/**
 * @ORM\Entity
 * @ORM\Table(name="et_date")
 * @ORM\InheritanceType("JOINED")
 * @ORM\DiscriminatorColumn(name="type", type="string")
 * @ORM\DiscriminatorMap({"Relative" = "DateRelative", "Absolue" = "DateAbsolue"})
 */
class Date {}

/**
 * @ORM\Entity
 * @ORM\Table(name="et_date_absolue")
 */
class DateAbsolue extends Date{}

/**
 * @ORM\Entity
 * @ORM\Table(name="et_date_relative")
 * @ORM\InheritanceType("SINGLE_TABLE")
 * @ORM\DiscriminatorColumn(name="type", type="string")
 * @ORM\DiscriminatorMap({"Inscription" = "DateRelativeInscription", "Devoir" = "DateRelativeDevoir"})
 */
class DateRelative extends Date {}

/**
 * @ORM\Entity
 * @ORM\Table(name="et_date_relative_inscription")
 */
class DateRelativeInscription extends DateRelative{}

我的DateRelative实体的我的鉴别器列不存在......

1 个答案:

答案 0 :(得分:1)

这是一个老问题,但我会回答,以防万一这会帮助其他人......

您不能将鉴别器列命名为“type”,因为“type”是保留的SQL关键字。

在尝试命名我的一个表“Like”时,我遇到了类似的问题,这也是一个保留的SQL关键字。

作为参考,这里是指向所有保留的SQL关键字列表的链接。

http://dev.mysql.com/doc/refman/5.0/en/keywords.html