PageListView и загрузка набора данных

Набор данных, который я отображаю с помощью PageableListView, может стать очень большим, и сохранение всего набора данных в качестве модели было бы очень неэффективным. Можно ли, например, сначала загрузить только набор идентификаторов, а затем загрузить только те объекты, которые должны отображаться на текущей странице? Я использую Wicket+Spring+Hibernate/JPA. Или есть лучший подход к подкачке в этом случае?


person John Manak    schedule 21.10.2010    source источник


Ответы (1)


Обычный способ справиться с этим (по крайней мере, для меня) - выполнить:

  • первый запрос для подсчета элементов и определения количества отображаемых страниц
  • последующие запросы с использованием Query#setFirstResult(int) и Query#setMaxResults(int) для каждой страницы.

В Wicket, JPA, GlassFish и Java Derby или MySQL автор точно показывает, как реализовать этот подход использует Wicket и DataView вместо PageableListView (приведен пример кода).

person Pascal Thivent    schedule 21.10.2010
comment
+1: в основном ответ заключается в использовании DataView вместо PageableListView, но эта запись в блоге действительно хорошо объясняет это. - person Don Roby; 22.10.2010
comment
@ Дон Спасибо, Дон, ты прав, и я пояснил этот момент в своем ответе. - person Pascal Thivent; 25.10.2010