Doctrine2 に次の階層を持たせたい:
- Message
- SMS
- SentSMS
- ScheduledSMS
- FailedSMS
- Newsletter
- SystemComunication
しかし、Symfony 2 でエンティティを生成しようとすると、次のエラーが発生します。
[Doctrine\ORM\Mappin\MappingException]
エンティティ 'Acme\HelloBundle\Entity\FailedSMS' には複合識別子がありますが、手動で割り当てる以外の ID ジェネレーター (ID、シーケンス) を使用しています。これはサポートされていません。
(から継承された) CTI( with )が機能するためにid
は、それ自体が割り当てられている必要があるという事実と矛盾しているためだと思います。FailedSMS
Message
FailedSMS
id
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 {}