Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java EE (J2EE) и Spring > Hibernate pagination, стратегии постраничной выбор |
Автор: UnicornMirage 10.11.2009, 15:25 |
Здравствуйте. Задача - сделать постраничную выборку из большого множества. Причем в интерфейсе пользователя необходимо также указывать общее число записей (или общее число страниц). Как это можно (лучше) сделать, мне приходит в голову два варианта: 1) Выполнять два запроса, сначала - SELECT count(*) FROM .. WHERE для получения общего кол-ва. Причем это число можно где нибудь кешировать, чтобы в следующий раз не выполнять запрос если мы просматриваем тот же список. Затем мы указываем Query.setFirstResult(...), Query.setMaxResults(...) и выполняем второй - from ... WHERE для получения записей 2) Использовать ScrollableResults, вариант быстрее, но не все СУБД его поддерживают. Какие еще существуют более эффективные способы? |
Автор: ivanovpv 10.11.2009, 16:31 |
Написать хранимку средствами СУБД, далее дергать хранимку. Это самый эффективный способ, но наименее транспортабельный. |
Автор: Старовъръ 12.11.2009, 09:37 |
Если работаешь с Criteria API, то есть такая вещь как Projections. Вот хорошая вещь: http://docs.jboss.org/hibernate/core/3.3/reference/en/html/querycriteria.html |