Doctrine多重继承实体

时间:2015-11-03 12:48:31

标签: symfony doctrine-orm discriminator

我试图做这样的事情:

/**
 * @ORM\Entity
 * @ORM\InheritanceType("JOINED")
 * @ORM\DiscriminatorColumn(name="discr", type="string")
 * @ORM\DiscriminatorMap({
 *     "element" = "Element",
 *     "comment" = "ElementComment",
 *     "question" = "ElementQuestion"
 * })
 */
class Element {

}

/**
 * @ORM\Entity
 * @ORM\InheritanceType("JOINED")
 * @ORM\DiscriminatorColumn(name="discr", type="string")
 * @ORM\DiscriminatorMap({
 *     "question" = "ElementQuestion"
 *     "range" = "ElementQuestionRange",
 *     "text" = "ElementQuestionText",
 * })
 */
class ElementQuestion {

}

/**
 * @ORM\Entity
 */
class ElementQuestionRange {

}

/**
 * @ORM\Entity
 */
class ElementQuestionText {

}

通常我应该在主类的歧义栏中有关于子类的信息。

但如果是多级继承,symfony仍会在第一级类中添加关于第三级类的信息,并且不会在第二级类中创建discrimin列。

我可以找到第三级集合,第二级集合,但如果我想找到第一级别它不起作用,因为区分对它无效。

我应该将所有第二级和第三级类添加到主类中的@ ORM / DiscriminatorMap,还是可以更好地进行?

0 个答案:

没有答案
相关问题