Я использую Spring 3.2 и Hibernate JPA с конфигурацией оракула 10g. Я должен отображать записи таблицы на страницах из 10 записей, в которых в настоящее время имеется 28 записей.JPG pagination дает wierd результаты
Так я готовлю настойчивость запроса и установить его FirstResult
и MaxResult
:
String sql = "From instanceDetailLog Where formName='GPB' Order By instanceId";
Query query = entityManager.createQuery(sql);
query.setFirstResult(((pageNumber*recordsToFetch)-recordsToFetch));
query.setMaxResults((pageNumber*recordsToFetch));
List<Object> dataList = query.getResultList();
Изначально для записей 1-10 записи извлекаются правильно. Но когда я запрашиваю следующую страницу для записей 11-20, она дает мне 18 записей (все остальные записи), а на третьей странице я получаю повторяющиеся записи.
Я наткнулся на это article. Что описывает проблему с разбиением на страницы в оракуле и JPA.
Может кто-нибудь, пожалуйста, скажите мне, что мне не хватает?
ваше право должно быть постоянным, но я также устанавливаю firstResult, который в основном говорит ему, чтобы начать чтение с указанная запись –
Вы указываете максимальное количество возвращаемых результатов. Он не зависит от настройки firstResult. Если вы хотите 10 каждый раз, укажите 10 каждый раз. – Chris
Итак, ваше высказывание MaxResults не указывает номер записи, до которого он должен быть прочитан, но количество записей, которое он извлекает –