Doctrine Regular vs Fetch join - PullRequest
       1

Doctrine Regular vs Fetch join

3 голосов
/ 24 июля 2010

в доктрине, какова разница между регулярным и выборочным соединением?я не понимаю, просто читая документы .

// regular
$query = $em->createQuery("SELECT u FROM User u JOIN u.address a WHERE a.city = 'Berlin'");
$users = $query->getResult();

// fetch
$query = $em->createQuery("SELECT u, a FROM User u JOIN u.address a WHERE a.city = 'Berlin'");
$users = $query->getResult();

какова цель получения соединения?если я select u, a почему я просто получаю users ($users = $query->getResult();)?если я использую обычное объединение, я могу использовать $user->getAddresses() для доступа к связанным объектам?

1 Ответ

8 голосов
/ 24 июля 2010

Я думаю, что документы описывают это довольно хорошо.Если вы используете соединение извлечения, связанные объекты будут включены в гидратированный результат.В противном случае они этого не сделают, и если вы затем попытаетесь получить к ним доступ, будет запущен другой запрос для получения информации.

Это просто вопрос того, должно ли оно быть включено в результаты.

...