【问题标题】:How to fetch main object and sub objects with WebFlux如何使用 WebFlux 获取主对象和子对象
【发布时间】:2021-11-06 23:30:42
【问题描述】:

我正在使用包含块的页面构建内容管理系统。我获取具有 id 的页面,然后获取与同一页面 id 关联的块。以阻塞的方式,我会这样做:

Page page = repo.getPageById(47);
page.setBlocks(repo.getBlocksByPageId(47));

当做这个反应时,flatMapszipWith 是一团糟:

Mono<Page> = repo.getPageById(47)
    .flatMap(page -> repo.getBlocksByPageId(47).collectList().zipWith(Mono.just(page)))
    .flatMap(t -> {
      List<Block> blocks = t.getT1();
      Page page = t.getT2();
      page.setBlocks(blocks);
      return Mono.just(page);
    });

你能推荐更好的方法来达到同样的效果吗?

【问题讨论】:

    标签: java spring-webflux


    【解决方案1】:

    您可以从一开始就压缩 2 个Monos 并使用map 而不是flatMap

    Mono<Page> result = repo.getPageById(47)
               .zipWith(repo.getBlocksByPageId(47).collectList())
               .map(t -> {
                   Page page = t.getT1();
                   page.setBlocks(t.getT2());
                   return page;
               });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-10
      • 2019-04-07
      • 1970-01-01
      • 2023-02-05
      • 2013-07-17
      • 2022-12-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多