Несколько CTI (наследование таблиц классов) среди классов в Doctrine 2?

Я хотел бы иметь следующую иерархию в 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 {}
7
задан j0k 20 September 2012 в 19:40
поделиться