hibernate在createNativeQuery中分页

问:我想要总计数,但我所用的限制只会给那么多。我可以使用相同的查询,无限制地计算总行数,但查询非常大,我不想两次运行相同的查询以获得总计数并计算行。 我真的很感激帮助。

EntityManager em = OpenJPAUtils.openEntityManager(); 
String sql="select DISTINCT student.studentId from student where ... LIMIT :limit OFFSET :offSet ; " 
query = em.createNativeQuery(sql); 
query.setParameter("limit", pageable.getPageSize()); 
query.setParameter("offSet", pageable.getPageNumber()); 
query.getResultList() 

答:为什么不使用JPA提供的分页?

query.setFirstResult(firstIndex); 
query.setMaxResults(firstIndex + pageSize); 

然后无需LIMIT子句中的SQL:

String sql="select DISTINCT student.studentId from student where ..."