我想在 Doctrine2 中有以下层次结构:
- Message
- SMS
- SentSMS
- ScheduledSMS
- FailedSMS
- Newsletter
- SystemComunication
但是当我尝试在 Symfony 2 中生成实体时,我收到以下错误:
[Doctrine\ORM\Mappin\MappingException]
实体 'Acme\HelloBundle\Entity\FailedSMS' 具有复合标识符,但使用 ID 生成器而不是手动分配(身份、序列)。这是不支持的。
我认为这是因为id
(FailedSMS
继承自)它与它本身应该有一个分配Message
的事实相冲突,以便 CTI(与)工作。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 {}