Hibernate分页 - 如何获得下一批结果?

时间:2016-11-24 12:53:26

标签: java hibernate pagination

我理解分页可以提高查询的性能,这些查询当然具有非常大的结果集。

我有实现的paginatedList方法,它成功返回正确的数量。但它似乎更像是MySQL的LIMIT或SQLServer的TOP子句。

因此实施该方法:

@SuppressWarnings("unchecked")
public List<T> paginatedList(int pageSize) {
    Criteria criteria = getSession().createCriteria(persistentClass);
    criteria.setFirstResult(0);
    criteria.setMaxResults(pageSize);
    return (List<T>) criteria.list();
}

我这样称呼:

@Override
public List<AlertLog> findAll() {
    return super.paginatedList(1000);
}

此实现将结果返回0到1000。

如何在运行时获得第1001个到第2000个等等?

1 个答案:

答案 0 :(得分:1)

要获得下一个1000结果,您需要将firstResult设置为1000并将maxresults设置为1000,因此它会变为..

criteria.setFirstResult(1000);
criteria.setMaxResults(noOfEntries);

请确保noOfEntries小于总数。