Оптимизация нумерации данных Spring - PullRequest
0 голосов
/ 28 февраля 2019

Когда нумерация страниц выполняется как

@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?

...