Я хотел бы иметь следующую иерархию в Doctrine2:
- Message
- SMS
- SentSMS
- ScheduledSMS
- FailedSMS
- Newsletter
- SystemComunication
Но когда я пытаюсь сгенерировать объекты в Symfony 2, я получаю следующую ошибку:
[Доктрина\ORM\Mappin\MappingException]
Сущность «Acme\HelloBundle\Entity\FailedSMS» имеет составной идентификатор но использует генератор идентификаторов, отличный от ручного назначения (Identity, Последовательность). Это не поддерживается.
Я думаю, это потому, что id
из FailedSMS
(унаследованного от Message
) противоречит тому факту, что FailedSMS
сам должен иметь назначенный идентификатор для работы CTI (с
SMS
).
Я прошу луну или есть способ заставить ее работать? Небольшой обзор иерархии:
/**
* @ORM\Entity
* @ORM\Table(name="message")
* @ORM\InheritanceType("JOINED")
* @ORM\DiscriminatorColumn(name="type", type="string")
* @ORM\DiscriminatorMap({"newsletter" = "Newsletter", "sms" = "SMS"})
*/
class Message {}
/**
* @ORM\Entity
* @ORM\Table(name="newsletter")
*/
class Newsletter extends Message {}
/**
* @ORM\Entity
* @ORM\Table(name="sms")
* @ORM\InheritanceType("JOINED")
* @ORM\DiscriminatorColumn(name="status", type="string")
* @ORM\DiscriminatorMap({"sent"="SentSMS", "scheduled"="ScheduledSMS",
* "failed"="FailedSMS"
* })
*/
class SMS extends Message {}
/**
* @ORM\Entity
* @ORM\Table(name="failed_sms")
*/
class FailedSMS extends SMS {}