在Doctrine 2中没有共享自动增量ID的类表继承?

时间:2012-10-23 18:06:31

标签: php doctrine doctrine-orm

是否可以在Doctrine 2中使用不共享自动增量的CTI?例如,我有一个Pet实体和两个子类CatDog。但是,如果我创建两只狗和一只猫,那么BOTH实体的下一个ID将是4.我希望DogCat拥有它自己的自动增量。

1 个答案:

答案 0 :(得分:1)

我不知道无论教条如何,这将如何运作。

如果您不知道期望哪个实体并且只拥有ID,该怎么办? 例如,获取id为4的Pet?

你不能按基类查询,恕我直言打破了继承的目的。

使用CTI,您可以获得单独的表,但它仍然只是简单的继承,CTI只是一个对象关系映射shema。

从具有相同id的两个相同类型的实体的对象模型角度来看,这是没有意义的。

因此,您既可以坚持自己拥有的东西,也可以完全摆脱遗产,并将Cat和Dog作为两个独立的实体进行管理。我建议你坚持使用第一个选项。

此外,对于CTI,猫和狗没有自动增量,只有宠物。子表只是从父项复制ID,无论ID是如何生成的。