0

是否有可能在 Doctrine 2 中有一个不共享自动增量的 CTI?例如,我有一个Pet实体和两个子类,Cat并且Dog. 但是,如果我创建两只狗和一只猫,两个实体的下一个 ID 将是 4。我想要DogCat拥有它自己的自动增量。

4

1 回答 1

1

无论教义如何,我都不知道这将如何工作。

如果您不知道期望哪个实体并且只有 id 怎么办?例如获取 id 为 4 的宠物?

您不能按基类查询,恕我直言,这破坏了继承的目的。

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

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

因此,您可以坚持现有的,也可以完全摆脱继承,将 Cat 和 Dog 作为两个独立的实体进行管理。我建议你坚持第一个选项。

此外,对于 CTI,Cat 和 Dog 上没有自动增量,只有 Pet 上。子表只是从父表复制 ID,而不管 ID 是如何生成的。

于 2013-01-14T19:10:02.360 回答