Я знаю, что с помощью Spring Data Rest я могу использовать встроенную функциональность разбиения на страницы. Вот так
Page<Product> findByCategoryId(@RequestParam("id") Long id, Pageable pageable);
Однако я нахожусь в проекте и использую Spring mvc @RestController и хочу добиться ту же функциональность я попробовал так: -
Session currentSession = entityManager.unwrap(Session.class);
Query<Product> theQuery = currentSession.createQuery("from Product", Product.class);
theQuery.setFirstResult((pageNumber-1) * pageSize); // This is 0 based
theQuery.setMaxResults(pageSize);
List<Product> dataList = theQuery.getResultList();
return dataList;
Работает, но я не получаю count из общего количества записей в таблице. И для нумерации пользовательского интерфейса мне это нужно.
Так что мне нужно каждый раз нажимать 2 запроса, как выше, а затем 1 запрос, чтобы получить размер записи. (Что может вызвать проблемы с данными c при обновлении записей)
Или
Есть ли лучший способ добиться этого в SINGLE QUERY