1 回答

TA贡献1869条经验 获得超4个赞
欢迎来到堆栈溢出。
第一个例子是合适的:
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));
问题是当您将其传递给 WebFlux(根据堆栈跟踪)时,Jackson 无法对SliceImpl(的实现)进行编码。Slice所以查询产生了正确的结果,但如果你想对它进行 JSON 编码,你需要传递Slice内容,而不是Slice本身。
相关说明:ReactiveCassandraRepository不实现ReactiveSortingRepository,因为带有Sort参数的 Casandra 查询始终需要一个WHERE子句。查看ReactiveSortingRepository,您会看到一个findAll(Sort)不采用过滤条件的方法:
public interface ReactiveSortingRepository<T, ID> extends ReactiveCrudRepository<T, ID> {
Flux<T> findAll(Sort sort);
}
添加回答
举报