在阅读了新的spring data casandra文档(here)后,它说现在有了对反应式cassandra的Mono<Slice<T>>支持。这很棒,因为在我的团队中,我们希望在响应式响应上实现某种类型的分页。因此,我们很高兴从Flux<T>迁移到Mono<Slice<T>>,但有一个问题,我们使用flux.map对流量的数据进行转换,但如果没有分块,这似乎是不可能的。
例如,我们有这样的功能:
Flux<Location> resp = repository.searchLocations(searchFields).map(this::transformLocation);其中,transformLocation是一个函数,它接收数据库对象并返回具有更多用户友好数据的更用户友好的对象。您将如何使用Mono<Slice<Location>>实现这一目标?
根据我对Slice的了解,您可以使用getContent获取数据,但这会返回一个列表,这不就像阻塞一样吗?
发布于 2019-02-19 14:18:51
您可以使用从getContent() method获得的列表来创建通量,就像您之前所做的那样。
Mono<Slice<Location>> sliceMono; //this is just another mono on which you can operate
Flux<location> intermediateResp = sliceMono.flatMap(slice -> Flux.fromIterable(slice.getContent()));
//you can now transform this intermediateResp flux as you were doing before, can't you?这不会满足您的目的吗?或者您需要其他东西吗?
(代码是在没有IDE帮助的情况下编写的,因此可以使用它来理解方法)
https://stackoverflow.com/questions/54747897
复制相似问题