Doctrine Mapping 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 {
}

После обновления моей схемы: я не нахожу поле «discr» моей таблицы Identite. Я что то пропускаю ??

1

Решение

Вы должны поставить @ORM\DiscriminatorColumn а также @ORM\DiscriminatorMap аннотации на суперклассе, а не на дочернем

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]