2009-11-09 3 views
2

Я делаю каталог списка, используя Hibernate и, чтобы избежать тонны данных каждый запрос, я использую:Hibernate: результаты страниц и знать размер результата

Criteria paging = sess.createCriteria(Principal.class); 
paging.setFirstResult((int) resultSetStart); 
paging.setMaxResults(resultSetSize); 
... 
List<Principal> principals = paging.list(); 

Теперь это работает отлично: Я думаю, точно resultSetSize результатов. Тем не менее, я хочу сделать что-то вроде Google, «показывая страницу X из Y».

Как узнать общее количество записей? Или общее количество страниц?

ответ

0

Нет никакого способа получить количество всех результатов без вызова некоторого запроса COUNT(). Так как вы должны сделать некоторое приближение (как это делает Google), или вы можете просто подсчитать общее количество лиц, прежде чем выполнить запрос с помощью:

paging.setProjection(Projections.rowCount());

+0

Так что мне нужно сделать два запроса, один для число строк, другое для фактических данных ??? – malaverdiere

+0

Если вы действительно хотите получить точные результаты, то да. Но прежде чем вы начнете беспокоиться о производительности, проверьте документацию своей базовой базы данных, потому что она может сделать это очень эффективно. – candiru

Смежные вопросы