首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法返回Mono<Compliance>

无法返回Mono<Compliance>
EN

Stack Overflow用户
提问于 2021-09-29 07:48:28
回答 1查看 29关注 0票数 0

我尝试从DB中检索Mono,然后根据一个条件过滤PortCall对象中的遵从性列表,最后返回一个遵从性或Mono

下面是我的Mongo DB查询

代码语言:javascript
复制
@Query("{vesselCode : ?0, arrivalVoyageCode: ?1}")
Mono<PortCall> findDeadlineTimestamp(String vesselCode, String arrivalVoyageCode);

下面是在ServiceImpl中检索单声道的用法

代码语言:javascript
复制
Mono<Compliance> cmp = portCallRepository.findDeadlineTimestamp(arrivalVoyageCode, vesselCode)
            .doOnNext(p->p.getCompliance().stream()
            .filter(c->c.getId().equalsIgnoreCase(compId))).subscribe();
EN

回答 1

Stack Overflow用户

发布于 2021-09-29 08:19:25

您应该使用Reactor的运算符,而不是Java 8 streams。

这样做的预期方法是实际使用filtermap运算符

代码语言:javascript
复制
Mono<Compliance> getCompliance() {
    return portCallRepository.findDeadlineTimestamp(arrivalVoyageCode, vesselCode)
            .map(e -> e.getCompliance())
            .filter(c -> c.getId().equalsIgnoreCase(compId));
}

然后,调用者将订阅:

代码语言:javascript
复制
getCompliance().subscribe()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69372403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档