[英]Doctrine Mapping 2 levels of inheritance
我定义了一个映射
/**
* 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”。 我会错过什么吗?
您应该将@ORM\\DiscriminatorColumn
和@ORM\\DiscriminatorMap
注释放在超类上,而不是子类上
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.