У меня есть вызов репозитория 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);
запускает только тот же самый запрос.
Я что-то упускаю в спецификации для разбивки на страницы?