我理解分页可以提高查询的性能,这些查询当然具有非常大的结果集。
我有实现的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个等等?
答案 0 :(得分:1)
要获得下一个1000结果,您需要将firstResult设置为1000并将maxresults设置为1000,因此它会变为..
criteria.setFirstResult(1000);
criteria.setMaxResults(noOfEntries);
请确保noOfEntries小于总数。