是否有可能在 Doctrine 2 中有一个不共享自动增量的 CTI?例如,我有一个Pet
实体和两个子类,Cat
并且Dog
. 但是,如果我创建两只狗和一只猫,两个实体的下一个 ID 将是 4。我想要Dog
并Cat
拥有它自己的自动增量。
问问题
232 次
1 回答
1
无论教义如何,我都不知道这将如何工作。
如果您不知道期望哪个实体并且只有 id 怎么办?例如获取 id 为 4 的宠物?
您不能按基类查询,恕我直言,这破坏了继承的目的。
使用 CTI,您可以获得单独的表,但它仍然只是简单的继承,CTI 只是一个对象关系映射 shema。
从对象模型的角度来看,拥有两个具有相同 id 的相同类型的实体是没有意义的。
因此,您可以坚持现有的,也可以完全摆脱继承,将 Cat 和 Dog 作为两个独立的实体进行管理。我建议你坚持第一个选项。
此外,对于 CTI,Cat 和 Dog 上没有自动增量,只有 Pet 上。子表只是从父表复制 ID,而不管 ID 是如何生成的。
于 2013-01-14T19:10:02.360 回答