Весенние данные Кассандра Пагинация - PullRequest
0 голосов
/ 18 сентября 2018

Кто-нибудь может знать, как добиться нумерации страниц в Spring Data Cassandra?

Я перепробовал все возможные альтернативы для нумерации страниц для моего стола. Один из ответов на stackoverflow говорит, что он не предоставляется напрямую. Результаты поискового запроса SELECT из приложения Cassandra в Spring Boot

Согласно документации (https://docs.spring.io/spring-data/cassandra/docs/current-SNAPSHOT/reference/html/#cassandra.repositories.queries) говорит, что CrudRepository предоставляет метод с Pageable. org.springframework.data.repository.CrudRepository не предоставляет.

Я использую Cassandra 3.11.3 и Spring Boot 1.5.1.RELEASE. Можно ли предоставить мне простую демонстрацию нумерации страниц с помощью Spring Data Cassandra?

1 Ответ

0 голосов
/ 15 июля 2019

Нумерация страниц в Spring Data Cassandra работает в режиме «только вперед», как работает интерфейс iterable.

    @Autowired
    PersonRepository personrepo;

    @GetMapping("/all/{page}")
    public List<Person> getPaginated(@PathVariable Integer page) {
        int currpage = 0, size = 2;
        Slice<Person> slice = personrepo.findAll(CassandraPageRequest.first(size));
        while(slice.hasNext() && currpage < page) {
            slice = personrepo.findAll(slice.nextPageable());
            currpage++;
        }

        return slice.getContent();
    }

Если ваш репозиторий содержит:

public interface PersonRepo extends CrudRepository<Person, Integer> {

    Slice<Person> findAll(Pageable pr);

}

Следовательно, вы продолжаете запрашивать результат, пока не будет достигнуто желаемое местоположение данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...