zipWith 没有返回结果
zipWith is not returning the result
我正在尝试对数据库执行两个查询,第一个查询插入数据,然后我执行另一个查询以从不同的集合中获取一些数据,然后合并结果,但 zipWith 没有被执行。
Mono<String> orderMono = orderDtoMono
.map(EntityDtoUtil::toEntity)
.flatMap(this.repository::insert)
.zipWhen(order -> this.clientRepository.findById(order. getOrderId()))
.map(i -> {
System.out.println("here");
return i.getT1().getOrderId() +" : "+i.getT2().getSuccessUrl();});
return orderMono;
插入查询有效,但是未执行 zipWhen,我得到 API 结果为 200 个空体。
期望的结果是最后在 map 运算符中创建的字符串。
只有当两个发布者 return 一些数据时,Zip 才会工作。否则为空。
在您的情况下,您刚刚通过存储库 .flatMap(this.repository::insert)
插入了一条新记录 - 然后您立即希望通过 this.clientRepository.findById(order. getOrderId())
显示此订单 ID。我相信它会是空的 - 所以在你的情况下你得到空响应。
您是否有任何数据库触发器可以根据新的订单 ID 在其他表中插入记录?你能解释一下吗 - this.clientRepository.findById(order. getOrderId())
?
我正在尝试对数据库执行两个查询,第一个查询插入数据,然后我执行另一个查询以从不同的集合中获取一些数据,然后合并结果,但 zipWith 没有被执行。
Mono<String> orderMono = orderDtoMono
.map(EntityDtoUtil::toEntity)
.flatMap(this.repository::insert)
.zipWhen(order -> this.clientRepository.findById(order. getOrderId()))
.map(i -> {
System.out.println("here");
return i.getT1().getOrderId() +" : "+i.getT2().getSuccessUrl();});
return orderMono;
插入查询有效,但是未执行 zipWhen,我得到 API 结果为 200 个空体。
期望的结果是最后在 map 运算符中创建的字符串。
只有当两个发布者 return 一些数据时,Zip 才会工作。否则为空。
在您的情况下,您刚刚通过存储库 .flatMap(this.repository::insert)
插入了一条新记录 - 然后您立即希望通过 this.clientRepository.findById(order. getOrderId())
显示此订单 ID。我相信它会是空的 - 所以在你的情况下你得到空响应。
您是否有任何数据库触发器可以根据新的订单 ID 在其他表中插入记录?你能解释一下吗 - this.clientRepository.findById(order. getOrderId())
?