Los criterios de hibernación devuelven la página y el recuento de filas.

Al utilizar los criterios de Hibernate, estoy tratando de lograr la paginación, pero el problema es que para cada búsqueda de página tengo que hacer dos llamadas a la base de datos, una para obtener resultados y otra para el total de registros. ¿Hay alguna forma eficiente para que en una sola llamada a la base de datos pueda obtener tanto los datos como pueda reducir las llamadas a la base de datos?

 Criteria criteria=session.createCriteria(Student.class);
 criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
 criteria.add(Restrictions.ne("enquiryStatus", ENQUIRY.JOINED));
 criteria.setMaxResults(10);
 criteria.setFirstResult((paginate.getStartIndex()-1)*10);

 criteria.setProjection(Projections.rowCount());
//here i need to fetch total row count and records

Respuestas a la pregunta(2)

Su respuesta a la pregunta