考虑具有(单向)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
答案 0 :(得分:6)
简短回答:升级到Doctrine 2.2。 EntityY-> getId()将不再触发类的加载。
我很久以前就看到了一些代码,它们展示了如何进入UnitOfWork对象并将其拉出来。找不到它。可以尝试搜索Doctrine2用户邮件列表。但鉴于2.2修复了这个问题,我只会加载,直到我可以升级。