总数量,使得我实现分页为dojo.store.jsonRest作为dojox.grid.DataGrid商店使用。在使用Symfony的2和服务器IM作为ORM 主义,进出口新的这两个框架。在有限的结果
对于道场jsonRest服务器的响应必须包含结果报头内容范围偏移,极限和记录的总数(不限制)。
因此,对于具有一个内容范围的响应:项目0-24/66头,如果其中滚动栅格记录来的24行的用户,就会使与范围内的异步请求: 24-66标题,然后响应报头应该有一个内容范围:项目24-66/66。这样做是为了道场可以知道它有多少请求作出分页的数据和记录范围的介绍和后续请求。
所以我的问题是,要获得没有限制的记录总数,我必须使用具有偏移量和限制的相同查询进行COUNT查询。我不喜欢这个。
我想知道是否有一种方法,我可以得到的总数,也没有留下两个查询的结果有限。
public function getByTextCount($text)
{
$dql = "SELECT COUNT(s.id) FROM Bundle:Something s WHERE s.text LIKE :text";
$query = $this->getEntityManager()->createQuery($dql);
$query->setParameter('text', '%'.$text.'%');
return $query->getSingleScalarResult();
}
-
public function getByText($text, $offset=0, $limit=24)
{
$dql = "SELECT r FROM Bundle:Something s WHERE s.text LIKE :text";
$query = $this->getEntityManager()->createQuery($dql);
$query->setParameter('text', '%'.$text.'%');
$query->setFirstResult($offset);
$query->setMaxResults($limit);
return $query->getArrayResult();
}
令人怀疑的是,虽然也许有人会知道。数据库几乎肯定会缓存整个查询,所以开销会很小。 – Cerad 2012-04-13 15:25:24
我也这么认为,但会看到。感谢您的快速响应。 – Jmsegrev 2012-04-13 15:54:26