Пустая коллекция Doctrine2 создает ненужный запрос - PullRequest
1 голос
/ 13 декабря 2011

У меня есть сущность Doctrine2 с коллекцией images. Вот мой запрос:

$qb = $this->createQueryBuilder('page');
    $qb->select('page, image');
    $qb->where('page.id = ?1')
       ->leftJoin('page.images', 'image')
       ->setParameter(1, $id);

$result = $qb->getQuery()->getOneOrNullResult();

Когда я звоню $result->getImages() и коллекция images пуста, происходит дополнительный вызов в базу данных. Как я могу предотвратить это?

1 Ответ

3 голосов
/ 21 сентября 2012

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

if($result->getImages() instanceof PersistentCollection)
    $result->getImages()->setInitialized(true);
}

Доктрина больше не вызывает БД, чтобы проверить, есть ли дети. Огромная оптимизация!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...