Я предполагаю, что у вас есть класс bean-компонентов, представляющих записи в этой таблице, с экземплярами, загруженными из любого имеющегося у вас ORM.
Если вы этого еще не сделали, вам следует реализовать кэширование этих компонентов в вашем приложении. Это можно сделать локально, например, используя CacheBuilder
в Guava, или удаленно, например, используя вызовы Memcached (последний будет необходим для нескольких серверов приложений / балансировки нагрузки). Кэш для этих bean-компонентов должен быть снабжен ключом с уникальным идентификатором, скорее всего, с отображением в столбце первичного ключа соответствующей таблицы.
Приступая к нумерации страниц: просто напишите свои запросы, чтобы вернуть только идентификаторы выбранных записей. Включите LIMIT
и OFFSET
или эквивалент вашего языка БД для разбивки на страницы. Вызывающий запрос также может фильтровать / сортировать по желанию, используя WHERE
, ORDER BY
и т. Д.
Вернувшись на уровень Java, выполните итерацию по полученным идентификаторам этих запросов и создайте List
bean-компонентов, вызвав кэш. Если кеш отсутствует, он будет вызывать ваш ORM для индивидуального запроса и загрузки этого компонента. После создания List
его можно обработать / сериализовать и отправить в пользовательский интерфейс.