【发布时间】:2016-06-22 06:48:56
【问题描述】:
我更喜欢在我的项目中强制使用查询构建器,我发现它生成的 sql 比直接编写 DQL 更可预测(过去它对我做了一些非常奇怪的连接)。但是,我发现此 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;
这是我唯一的选择还是可以使用查询构建器来获得相同的结果?
我了解到,querybuilder 更像是一个具有水合等功能的 orm 工具,对于更多基于数组的非水合查询结果集没有那么有用。
【问题讨论】:
标签: php postgresql symfony doctrine dql