简体   繁体   English

原则映射2级继承

[英]Doctrine Mapping 2 levels of inheritance

I defined a mapping for 我定义了一个映射

/**
 * Identite entity
 * @ORM\Entity
 * @ORM\Table(name="identite")
 * @ORM\InheritanceType("JOINED")
 * @ORM\DiscriminatorColumn(name="discr", type="string")
 * @ORM\DiscriminatorMap({"identite" = "Identite","candidat" = "Candidat","consultant"="Consultant","staff"="Staff" })
 */
class Identite extends ObjetEtat{


    /**
     * @var integer
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id; 
    /**
     * @var string
     *
     * @ORM\Column(name="nomidentite", type="string", length=200, nullable=true)
     */
    private $nomidentite;}

and I have the mapping of the super Class: 我有超级类的映射:

/**
 * Identite entity
 * @ORM\Entity
 * @ORM\Table(name="objetetat")
 * @ORM\InheritanceType("JOINED")
 * @ORM\DiscriminatorColumn(name="discrimin", type="string")
 * @ORM\DiscriminatorMap({"objetetat" = "ObjetEtat","identite" = "Sigmatis\SigBundle\Entity\Identites\Identite" })
 */

class ObjetEtat {
    //put your code here

        /**
     * @var integer
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id; }

And this is the third level of my hierarchy : 这是层次结构的第三层:

/**
 * Candidat entity
 * @ORM\Entity
 * @ORM\Table(name="candidat")

 */

class Candidat extends Identite {
}

After updating my schema : I don't find the field "discr " of my table Identite . 更新架构后:我找不到表Identite的字段“ discr”。 Do I miss something ?? 我会错过什么吗?

您应该将@ORM\\DiscriminatorColumn@ORM\\DiscriminatorMap注释放在超类上,而不是子类上

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM