7
我想有以下層次結構中Doctrine2:Doctrine 2中類中的多個CTI(類表繼承)?
- Message
- SMS
- SentSMS
- ScheduledSMS
- FailedSMS
- Newsletter
- SystemComunication
但是當我嘗試生成的Symfony 2的實體,我得到以下錯誤:
[Doctrine\ORM\Mappin\MappingException]
Entity 'Acme\HelloBundle\Entity\FailedSMS' has a composite identifier but uses an ID generator other than manually assigning (Identity, Sequence). This is not supported.
我想這是因爲id
的FailedSMS
(繼承自Message
)它與FailedSMS
本身應該有一個分配的id
爲了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 {}
謝謝。映射的超類似乎很好,因爲我真的不需要或使用消息實體。我要去測試它。 – gremo