Поддерживает ли Spring Data Couchbase реактивную разбивку на страницы?

У меня есть вариант использования для предоставления API, который возвращает список пользователей. Поскольку пользователей более 10000, необходимо также разбиение на страницы. Поскольку я использую реактивную базу данных Spring, я не могу найти способ реализации нумерации страниц реактивным способом для моего API.

Можно ли добиться разбивки на страницы, с помощью которой вызывающие API могут контролировать, сколько записей они хотят и могут обрабатывать?


person V Rao    schedule 19.04.2019    source источник


Ответы (1)


Вы можете использовать стандартные N1QL LIMIT и OFFSET:

@Query("#{#n1ql.selectEntity} where #{#n1ql.filter} and companyId = $1 LIMIT $2 OFFSET $3")
Flux<Users> listUsers(String companyId, Integer limit, Integer offset);
person deniswsrosa    schedule 22.04.2019
comment
Могу ли я передать * как идентификатор компании, так как мне нужны данные всех компаний в ответе с разбивкой на страницы? - person V Rao; 23.04.2019
comment
companyId — это просто пример случайного атрибута. Вы можете просто удалить его. - person deniswsrosa; 23.04.2019
comment
Я пытался протестировать предложенный подход и получил следующую ошибку: ==› сообщение: невозможно выполнить запрос n1ql из-за ошибки: {\msg\:\Invalid LIMIT value 5.\,\code\:5030} `@Query (#{#n1ql.selectEntity} где #{#n1ql.filter} OFFSET $2 LIMIT $1) Flux‹Company› findByIdLimitAndOffset(String limit, String offset);` Может кто-нибудь подсказать, что я здесь делаю неправильно с limit=5&offset=0 ценности? - person V Rao; 23.04.2019
comment
Ограничение и смещение должны быть целыми числами. - person deniswsrosa; 23.04.2019