2014-01-22 4 views
0

Я использую 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.

Может кто-нибудь, пожалуйста, скажите мне, что мне не хватает?

ответ

0

Максимальное количество результатов должно быть постоянным. Используя pageNumber * recordsToFetch, вы говорите ему, чтобы получить 20 строк, поэтому вы получаете последние 18.

+0

ваше право должно быть постоянным, но я также устанавливаю firstResult, который в основном говорит ему, чтобы начать чтение с указанная запись –

+0

Вы указываете максимальное количество возвращаемых результатов. Он не зависит от настройки firstResult. Если вы хотите 10 каждый раз, укажите 10 каждый раз. – Chris

+0

Итак, ваше высказывание MaxResults не указывает номер записи, до которого он должен быть прочитан, но количество записей, которое он извлекает –

Смежные вопросы