如何在不加载关联实体的情况下获得关联实体的ID?

时间:2012-03-09 12:40:06

标签: symfony doctrine-orm

考虑具有(单向)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

1 个答案:

答案 0 :(得分:6)

简短回答:升级到Doctrine 2.2。 EntityY-> getId()将不再触发类的加载。

我很久以前就看到了一些代码,它们展示了如何进入UnitOfWork对象并将其拉出来。找不到它。可以尝试搜索Doctrine2用户邮件列表。但鉴于2.2修复了这个问题,我只会加载,直到我可以升级。

相关问题