У меня есть комбинация критериев поиска, которые реализованы с использованием критериев гибернации. И я добавил разбиение на страницы следующим образом:
criteria.setFirstResult(offset).setMaxResults(pageSize).setFetchSize(pageSize).list();
Этого недостаточно для разбиения на страницы, поэтому я подсчитал общий размер результата.
totalResult = (Integer)criteria.setProjection(Projections.rowCount()).uniqueResult();
Проблема в том, что при первой отправке формы поиска я получил правильный результат totalResult. Когда я нажимаю на следующую страницу и смещение изменяется, я получаю NullPointExcetion во втором выражении. Я не знаю почему. И с помощью отладки я вижу, когда возникает это исключение, первый оператор успешно возвращает результаты с разбивкой на страницы.
Итак, я хочу спросить, противоречит ли первое утверждение второму? (поскольку первый оператор устанавливает размер выборки равным 10, и мне интересно, будет ли функция count(*) работать правильно. это разные задачи, использующие одни и те же критерии. Как я могу клонировать или копировать один критерий, который уже имеет множество ограничений?)