Я предпочитаю принудительно использовать конструктор запросов в своем проекте, я нахожу, что sql, который он производит, более предсказуем, чем писать прямой DQL (в прошлом он делал некоторые очень странные объединения) , Тем не менее, я обнаружил, что этот DQL - единственный способ, которым я могу выполнить этот запрос агрегирования.Doctrine2 эквивалент DQL в построителе запросов
$q = $this->getEntityManager()->createQuery(<<<DQL
SELECT IDENTITY(p.business, 'id') as businessId, SUM(p.amount) as points
FROM APIBundle\Entity\Point p
WHERE IDENTITY(p.user, 'id') = :user
GROUP BY p.business
DQL
)
->setParameter('user', $user->getId())
;
return $q;
Это мой единственный вариант или можно использовать конструктор запросов для получения того же результата?
Я получаю некоторое представление о том, что построитель запросов больше представляет собой инструмент orm с гидратацией и т. Д., Но не так полезен для более массивных негидратированных запросов.