Hibernate DiscriminatorValue等同于Doctrine 2

时间:2017-08-10 08:00:34

标签: symfony doctrine-orm discriminator

我有一个问题。我一直在等待 Doctrine 2 中的 DiscriminatorColumn 注释,但现在我通过更新Doctrine得到了它,我无法找到 Hibernate' s DiscriminatorValue 在Doctrine中等效的注释。仅供参考,我的学说版本是" doctrine / orm":" ^ 2.5.6" " doctrine / doctrine-bundle":" ~1.6"但我找不到这样的注释。

我的基本愿望是将每个子类的Discriminator Column值设置为 DiscriminatorMap 中的主类。

1 个答案:

答案 0 :(得分:0)

就像我的评论所述,我也有这个问题,我想在子类上“声明”新的DiscriminatorMap条目。简短的回答是:根本不要声明地图。学说照顾它。

阅读我的full answer。这对我使用Class Table Inheritance (CTI)很有用,文档声明它对Single Table Inheritance (STI)应该有效。

让Doctrine为您处理它的基本代码设置是:

<?php
namespace My\Namespace\Entity;

/**
 * @Entity
 * @InheritanceType("JOINED")
 * @DiscriminatorColumn(name="discr", type="string")
 * // NOTE: No DiscriminatorMap!!!
 */
class Person
{
    // ...
}


<?php
namespace My\Other\Namespace\Entity;

/** @Entity */
class Employee extends \My\Namespace\Entity\Person
{
    // ...
}