考虑具有(单向)manyToOne 关联的实体:
EntityX:
type: entity
table: x
id:
id:
type: integer
generator: { strategy: AUTO }
fields:
type:
type: string
manyToOne:
entityY:
targetEntity: EntityY
EntityY 的任何属性都将通过代理类延迟加载;但是,EntityY 的标识符将(必须)在代理加载之前可用。在不触发 EntityY 的代理加载器的情况下获取此标识符的最佳方法是什么?
编辑:我使用的是 Symfony2 (2.0.11),所以 Doctrine 依赖被限制为 v2.1
最佳答案
简短回答:升级到 Doctrine 2.2。 EntityY->getId() 将不再触发类的加载。
很久以前我确实看过一些代码,其中展示了如何进入 UnitOfWork 对象并将其拉出。找不到它。可以尝试搜索 Doctrine2 用户邮件列表。但考虑到 2.2 解决了这个问题,在我可以升级之前,我会忍受加载。
关于symfony - 如何在不加载关联实体的情况下获取关联实体的 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9634190/