我有一个实体驱动程序和一个实体汽车。一个司机有很多车。 我有以下dql查询:
$query = $this->getEntityManager()->createQuery('select d, c FROM driver d JOIN d.cars c WHERE c.color=:color');
$query->setParameter('color', $color);
$query->setFirstResult((int)$offset ? $offset*15 : 0 );
$query->setMaxResults(15);
结果列表有5行。但是当我在控制台中执行创建的SQL查询时,我有15行。 当我将连接类型更改为左连接时,行数不是由驱动程序计算的。但是我使用寻呼机来阅读有红色汽车的司机。
有人知道我做错了什么吗? 非常感谢你。
答案 0 :(得分:3)
当您使用Doctrine进行获取连接查询时,每个实体都会返回多行。如果对这些查询使用setMaxResults,则会丢弃某些实体。
解决方案在这里:http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/tutorials/pagination.html