Page.getTotalElements () возвращает неверное значение со спецификацией - PullRequest
0 голосов
/ 03 августа 2020

У меня есть вызов репозитория findAll с запросом Specification и Pageable. Результат перенастройки соответствует условию, указанному в спецификации. Но общее количество в результате страницы не учитывается спецификацией.

Предположим, что в базе данных 50 записей. Использование спецификации для фильтрации данных по некоторому условию. Должно быть возвращено 35 записей.

Размер страницы равен 20. Содержимое страницы - 1-20 и 20-35, и его получение правильно основано на спецификации. Но page.getTotalElements () всегда возвращает 50 записей.

Page request [number: 0, size 20, sort: UNSORTED]

Page<MyEntity> myResult = myRepository.findAll(mySpecification, pageable);

Я вижу в запросе гибернации, который запускается, не учитывает условие спецификации.

Hibernate: select count(myEntity0_.MYENTITY_ID) as col_0_0_ from my_entity myEntity0_

Даже myRepository.count(mySpecification); запускает только тот же самый запрос.

Я что-то упускаю в спецификации для разбивки на страницы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...