Вы можете использовать разбиение на страницы с помощью собственного запроса. Это описано здесь: https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#_native_queries
" Вы однако могут использовать собственные запросы для разбивки на страницы, указав непосредственно запрос подсчета: Пример 59. Объявите собственные запросы подсчета для разбивки на страницы в методе запроса с помощью @Query "
public interface UserRepository extends JpaRepository {
@Query(value = "SELECT * FROM USERS WHERE LASTNAME = ?1",
countQuery = "SELECT count(*) FROM USERS WHERE LASTNAME = ?1",
nativeQuery = true)
Page findByLastname(String lastname, Pageable pageable);
}