2015-04-22 106 views
1

的我定義的映射主義映射2級繼承

/** 
* 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;} 

和我有超類的映射:

/** 
* 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; } 

這是我的層次結構的第三層次:

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

*/ 

class Candidat extends Identite { 
} 

更新我的模式後:我沒有找到我的表Identite的字段「discr」。我想念什麼?

+0

你在你的「objetetat」表中有「discrimin」列? –

+0

是在那裏存在「歧視」一欄,當我插入一個對象(Candidat或Staff)時,歧視的價值取決於:Candidat或員工。但我需要的是:歧視將採取值「身份」,並在表Identite,我想有一個名爲discr的列,我將有:candidat,或工作人員 –

+0

你有什麼想法嗎? –

回答

1

你應該把@ORM\DiscriminatorColumn@ORM\DiscriminatorMap註解超,不是孩子一個

+0

Thnx的答覆,但我也需要它的孩子,因爲孩子有它的子類(Candidat,顧問,工作人員.....) –