我在mysql中使用此代码进行分页(使用Struts 2 + Hibernate):
Query query=getSession().createQuery("from GovOffice");
query.setFirstResult(0);
query.setMaxResult(100);
List<GovOffice> list=query.list();
Run Code Online (Sandbox Code Playgroud)
这将返回从第一条记录开始的GovOffice列表,每页显示100条记录.
假设我有100,000条记录,这个"来自GovOffice"的查询是否首先获得所有100,000条记录?通过setFirstResult和setMaxReSult,它将限制从100,000到100个记录.如果这是真的,那意味着分页必须是无用的.
如果没有,有任何方法可以证明在我们调用之前查询不会从DB获取数据query.list().