迭代jpa中的结果列表并设置firstResult,maxResults

时间:2012-12-22 07:52:30

标签: jpa-2.0

我有一个查询,它给出了大的结果,假设它是1,00,000。我需要在UI中的网格中显示所有这些记录。所以我正在使用

TypedQuery<Object> typedQuery =  entityManager.createQuery(cq); 
   typedQuery.setFirstResult(0);
   typedQuery.setMaxResults(1000);
List<Object> resultList = typedQuery.getResultList();

当执行此查询时,我只能在UI中看到1000条记录。它没有获取下一组结果。但是我需要查看所有记录,无论该查询返回什么。我怎么能这样做。可以任何人都告诉我。对我来说非常紧急。我正在使用JPA标准API。

2 个答案:

答案 0 :(得分:0)

如果您想要所有内容而不仅仅是前1000个结果,为什么要拨打setFirstResult()setMaxResults()?删除它们,查询将检索所有内容:

TypedQuery<Object> typedQuery = entityManager.createQuery(cq); 
List<Object> resultList = typedQuery.getResultList();

答案 1 :(得分:0)

您是如何尝试获取下一组结果的?

如果您按原样使用帖子中显示的查询,您将始终获得前1000条记录,因为这就是您所要求的。

您需要重复调​​用此查询,方法是将setFirstResult设置为0然后将1000设置为2000,依此类推,直到结果列表为空。