и для пагинации надо знать, сколько всего осталось rows т.е. послать COUNT запрос ( а запрос ограничен LIMIT и OFFSET ). Например, вот так
SELECT * FROM dish WHERE category=? ORDER BY ? ? LIMIT ? OFFSET ?
Как лучше отдельно count запросы посылать в таком случае?
Отдельный метод в DAO с каунтом для каждого подобного метода?
Спринг JPA умеет в пагинацию, просто в методы передается pageable как входной параметр
Без спринга, только сервлеті
Да, все так
Делать пагинацию силами offset-а из бд с точки зрения performance так себе
Тогда похоже что Каунт можно получить отдельным запросом с фронта . Но на уровне дао отдельный метод, да
Почему ? И как надо ?
А есть другие варианты? Я только учусь
Offset довольно медленная операция, там же вся таблица пересматривается Как надо - каждый сам решает Зависит от требований, может у тебя нет требований к задержкам, тогда и offset подойдет Ну или мб попробовать с курсорами Или самим считать смещение по id или что там у вас есть
Как минимум лучше where по суррогатному ключу с индексом + лимитом
Обсуждают сегодня