Когда нумерация страниц выполняется как
@Query(""" SELECT p FROM Product p
INNER JOIN OrderProduct b ON p.id = b.productId
WHERE b.quantity > 0 AND b.status IN :status AND p.name like :name%
GROUP BY p """)
fun searchByNameAndStatus(@Param("name") name: String, @Param("status") status: List<BlockStatus>, pageable: Pageable): Page<Product>
, Spring выполняет два запроса.Один для получения количества и второй для выбора строк.При повторном посещении запроса, который генерируется для COUNT, он генерирует запрос с идентификатором, подобным SELECT COUNT(p.id)
.Запрос будет быстрее, если он будет сгенерирован как SELECT COUNT(*)
, то есть без имени столбца.
Как этого добиться в Spring Data JPA?