根据文档:https://docs.spring.io/spring-data/cassandra/docs/2.1.4.RELEASE/reference/html/#repositories.limit-query-result
Spring cassandra数据让人很容易得到……
欢迎来到Stack Overflow。
第一个例子是合适的例子:
public interface MyRepository extends ReactiveCassandraRepository<MyClass, String> { @Query("select * from my_keyspace.my_table where solr_query = ?0") Mono<Slice<MyClass>> findMono(String solrQuery, Pageable page); } Mono<Slice<MyClass>> repository.findMono(queryString, CassandraPageRequest.first(20));
问题是杰克逊不能编码 SliceImpl (实施 Slice 当你将它传递给WebFlux时(根据堆栈跟踪)。所以查询产生了正确的结果,但你需要传递 Slice 内容,而不是 Slice 本身,如果你想JSON编码它。
SliceImpl
Slice
在相关的说明: ReactiveCassandraRepository 没有实现 ReactiveSortingRepository 因为Casandra用一个查询 Sort 论证要求总是一个 WHERE 条款。看着 ReactiveSortingRepository ,你会看到一个 findAll(Sort) 不采用过滤条件的方法:
ReactiveCassandraRepository
ReactiveSortingRepository
Sort
WHERE
findAll(Sort)
public interface ReactiveSortingRepository<T, ID> extends ReactiveCrudRepository<T, ID> { Flux<T> findAll(Sort sort); }