Как получить идентификатор связанной сущности без загрузки связанной сущности? - PullRequest
3 голосов
/ 09 марта 2012

Рассмотрим сущность с (однонаправленной) ассоциацией 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 Ответ

6 голосов
/ 09 марта 2012

Краткий ответ: Обновление до Доктрины 2.2. EntityY-> getId () больше не будет запускать загрузку класса.

Я действительно видел некоторый код давным-давно, который показал, как добраться до объекта UnitOfWork и извлечь его. Не могу найти это. Попробуйте поискать в списке рассылки пользователей Doctrine2. Но, учитывая, что 2.2 исправляет эту проблему, я просто буду жить с загрузкой, пока не смогу обновить.

...