2

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

/**
 * @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 实体的鉴别器列不存在...

4

1 回答 1

1

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

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

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

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

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

于 2015-06-10T05:38:31.650 回答