Способ отключить count query от PageRequest для получения общего количества страниц?

мы используем данные Весны с PageRequest и ударяем значительно большой набор данных. Все запросы выполняются оптимально, за исключением запроса, выполняемого для получения общего количества страниц. Есть ли способ отключить эту функцию или нам, скорее всего, придется реализовать наши собственные Листаемый?

http://static.springsource.org/spring-data/data-commons/docs/1.3.2.RELEASE/api/org/springframework/data/domain/PageRequest.html

http://static.springsource.org/spring-data/data-commons/docs/1.3.2.RELEASE/api/org/springframework/data/domain/Pageable.html

Edit: после дальнейшего анализа я считаю, что единственный способ обойти эту проблему-не использовать данные Spring и использовать EntityManager, как это позволяет установка начальной строки и количества записей для возврата. Нам нужно только, доступна ли следующая страница, поэтому мы просто получаем одну дополнительную запись. Нам также нужен динамический запрос, который не представляется возможным в Spring Data.

Edit 2: и казалось бы, я просто не ждать достаточно долго для некоторых ответов. Спасибо, ребята!!!

1 ответов


путь достигнуть этого просто путем использование List в качестве возвращаемого значения. Так, например, для репозитория, определенного следующим образом:

interface CustomerRepository extends Repository<Customer, Long> {

  List<Customer> findByLastname(String lastname, Pageable pageable);
}

механизм выполнения запроса применит смещение и размер страницы, как передано Pageable но не запускать дополнительный запрос count, поскольку нам не нужно создавать Page экземпляра. Это также задокументировано в соответствующие разделы нормативно-технической документации.