По вашей ссылке:
Вы можете пометить много-к-одному или один-к-одному как выбранныевременно для пакетного извлечения этих объектов с помощью запроса WHERE .. IN
Похоже, что текущая версия Doctrine не поддерживает активную загрузку коллекции один-ко-многим ,к сожалению.
Эта страница , кажется, подтверждает это предположение:
@ OneToMany
Обязательные атрибуты:
targetEntity : FQCN указанного целевого объекта.Может быть неквалифицированным именем класса, если оба класса находятся в одном пространстве имен.ВАЖНО: Без обратной косой черты!
Необязательные атрибуты:
- каскад : каскадный параметр
- orphanRemoval : логическийУказывает, следует ли Doctrine удалять сирот, обратных сущностей OneToOne, которые не связаны ни с одним экземпляром-владельцем.По умолчанию установлено значение false.
- mappedBy : эта опция указывает имя свойства для targetEntity, являющегося владельцем этой связи.Это обязательный атрибут для обратной стороны отношения.
Аннотация @OneToMany
не имеет атрибута fetch
, в отличие от @OneToOne
и @ManyToOne
.
Обновление
Я только что заметил, что вы можете действительно стремиться получить связанные сущности, используя явный LEFT JOIN
вDQL:
SELECT u, a FROM User u
LEFT JOIN u.addresses a
Использовать LEFT JOIN
, а не внутренний JOIN
, или объекты с пустой коллекцией (User
без Address
) будут исключены из набора результатов.
Обновление (2017)
Как указано GusDeCool и webDEVILopers в комментариях, атрибут fetch
теперь поддерживается на @OneToMany
.Вышеуказанный ответ устарел.