当前位置: 首页 > 知识库问答 >
问题:

操纵单粒子和通量变换

仲孙英才
2023-03-14

我正在使用Spring 5 webflux和ReactiveMongorPositories。假设我有两个系列“竞赛”和“竞赛参与”:

    Race : {
    "_id" : "ID",
    "name" : "Name"
    }

    RaceParticipation : {
    "_id" : "ID",
    "userId" : "ID",
    "raceId" : "ID"
    }

我需要找到一个特定用户参与的比赛页面。

我使用的解决方案是调用raceReportationRepository.findByUserId("userId",PageRequest.of(0,10))这将返回一个Flux

以下是一个片段:

Flux<Race> findUserRaces(String userId, int page){
    return raceParticipationRepository.findByUserId(userId, status,
                PageRequest.of(page, 6))
            .collectList()
            .map(list -> list.stream()
                    .map(ParticipationRepository::getRaceId)
                    .collect(Collectors.toList()))
            .flatMap(list -> raceRepository.findAllById(list));
}

这段代码无法编译<代码>“所需流量

知道我错过了什么或者我该怎么做吗?


共有1个答案

易弘亮
2023-03-14

您的问题是CollectList()部分,因为它从您的Flux中生成了一个Mono,这显然是您不想要的——您在收集后立即从列表中生成了一个流。这里应该做同样的事情,再加上将Mono映射到一个带有平面图的Flux:

raceParticipationRepository.findByUserId(userId, status,
            PageRequest.of(page, 6))
      .map(ParticipationRepository::getRaceId)
                .collectList(Collectors.toList()) // returns Mono<List>
      .flatMapMany(list -> raceRepository.findAllById(list)); // Mono -> Flux again
 类似资料:
  • 我对Spring Reactive还是个新手。 我想将一个Spring反应式回购通量响应转换为另一种类型的单声道响应: 我已经尝试了提供的运算符(转换是我需要的闭包,但它仍然将repo结果的每一个参数都提供为reactive参数),但最终不能得到任何我知道如何使用的东西。

  • C++ 提供了大量的用于执行格式化输入/输出的流操纵算子。流操纵算子提供了许多功能,如设置域宽、设置精度、设置和清除格式化标志、设置域填充字符、刷新流、在输出流中插入换行符并刷新该流、在输出流中插入空字符、跳过输入流中的空白字符等等。下面几节要介绍这些特征。 11.6.1 整数流的基数:流操纵算子 dec、oct、hex 和 setbase 整数通常被解释为十进制(基数为10)整数。如下方法可改变

  • 本节暂未进行完全的重写,错误可能会很多。如果可能的话,请对照原文进行阅读。如果有报告本节的错误,将会延迟至重写之后进行处理。 一个微粒,从OpenGL的角度看就是一个总是面向摄像机方向且(通常)包含一个大部分区域是透明的纹理的小四边形.一个微粒本身主要就是一个精灵(sprite),前面我们已经早就使用过了,但是当你把成千上万个这些微粒放在一起的时候,就可以创造出令人疯狂的效果. 当处理这些微粒的时

  • 粒子系统是游戏引擎特效表现的基础,它可以用于模拟的火、烟、水、云、雪、落叶等自然现象,也可用于模拟发光轨迹、速度线等抽象视觉效果。 基本结构 粒子系统的基本单元是粒子,一个粒子一般具有位置、大小、颜色、速度、加速度、生命周期等属性。在每一帧中,粒子系统一般会执行如下步骤: 产生新的粒子,并初始化 删除超过生命周期的粒子 更新粒子的动态属性 渲染所有有效的粒子 一般粒子系统会有如下几个部分组成: 发

  • 粒子系统入门 本节介绍如何实现常见类型的粒子系统。你可以自由使用文档中所有代码,不受 Unity 的任何限制。

  • 使用粒子系统 Unity 使用一个组件实现粒子系统。在场景中放置粒子系统的常用方式是,添加一个预制的游戏对象(菜单:GameObject > Create General > Particle Syste),或者为一个现有的游戏对象添加粒子系统组件(菜单:Component > Effects > Particle System)。因为该组件相当复杂,所以检视视图被分割成数个可折叠的部分或 模块,