Наборът от данни, който показвам с помощта на PageableListView, може да стане много голям и запазването на целия набор от данни като модел би било много неефективно. Възможно ли е да се зареди например първо само наборът от идентификатори и след това да се заредят само обектите, които трябва да бъдат показани на текущата страница? Използвам Wicket+Spring+Hibernate/JPA. Или има по-добър подход за страниране в този случай?
PageListView и зареждане на набор от данни
Отговори (1)
Обичайният начин да се справя с това (поне за мен) би бил да изпълня:
- първа заявка за преброяване на елементите и извеждане на броя на страниците за показване
- последващи заявки, използвайки
Query#setFirstResult(int)
иQuery#setMaxResults(int)
за всяка страница.
В Wicket, JPA, GlassFish и Java Derby или MySQL авторът показва точно как да внедрите този подход използва Wicket и DataView
вместо PageableListView
(предоставен примерен код).
Това е език за програмиране с общо предназначение. Да перифразираме Кент Питман по въпроса за какво е полезен Common Lisp:
...Моля, не приемайте, че [Smalltalk] е полезен само за анимация и графика, AI, биоинформатика, B2B и електронна търговия, извличане на данни, EDA/полупроводникови приложения, експертни системи, финанси, интелигентни агенти, управление на знания, механичен CAD , моделиране и симулация, естествен език, оптимизация, изследвания, анализ на риска, планиране, телекомуникации и уеб авторство само защото това са единствените неща, които случайно са изброили.
Той е особено подходящ за приложения, които не могат да имат прекъсване - съвсем нормално е да се извърши корекция на работещ сървър по дълбок начин (да речем, като промените формата на вашия клас), без да прекъсвате сървъра - или системи, които са много сложни или имат бързо променящи се изисквания.
- person Pascal Thivent; 25.10.2010