使用 Spring WebFlux 為 Mono<Entity> 添加值

馬可

我需要將屬性Friends(它是一個 ArrayList)從 a複製Mono<PersonEntity>到 a Mono<UserEntity>(它Friends在數據庫中沒有屬性),但我沒有找到正確的方法來做到這一點,所以當我映射Mono<UserEntity>到 Dto 時,字段Friends結果是一個空數組[]。

public Mono<Dto> findEntityByIdAndLabel(Long id, String label) {
    return getPersonByIdAndLabel(id, label).flatMap(person -> {
         return UserRepository.findByID(id);     
    })
            .switchIfEmpty(Mono.error(new EntityNotFoundException(entity.toString(), id.toString(), label)))
            .map(this::mapper);
}

我想我應該在之後添加一些東西,findById(id)但直到現在我嘗試過的一切都不起作用。謝謝你的時間

若昂·迪亞斯

由於您沒有顯示PersonEntityUserEntity我們只能猜測它們的屬性以及 getter 和 setter 方法。儘管如此,以下幾行應該可行:

public Mono<Dto> findEntityByIdAndLabel(Long id, String label) {
    return getPersonByIdAndLabel(id, label)
        .zipWith(UserRepository.findByID(id))
        .map(tuple -> {
            List friends = tuple.getT1().getFriends();
            UserEntity user = tuple.getT2():
            user.setFriends(friends);
            return user;
        })
        .switchIfEmpty(Mono.error(new EntityNotFoundException(entity.toString(), id.toString(), label)))
        .map(this::mapper);
}

重要的是zipWith,它將 aMono和 another的結果組合Mono成 a Tuple2,然後您可以輕鬆映射。您可以在參考文檔中閱讀有關此內容的更多信息

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用WebFlux从Mono <Entity>对象收集int值

Spring webflux 与 Mono 对象交互

Spring webflux 反应式 Mono::subscribe

Spring webflux 中的 void 与 Mono<Void>

使用Spring Webflux时在后台运行Mono并返回响应

如何通过Spring WebFlux Reactive方法在处理函数中使用Mono和Flux

Spring Webflux和Spring Cloud Gateway:如何在Mono中提取对象并添加到请求标头

在Spring Webflux中的Mono <Response <T >>中转换Flux <T>

Spring WebFlux - 如何返回与 Mono 源不同的类型?

Spring webflux 5.2.3 bodyToMono 在 onStatus 中的空 Mono 之后调用

Spring WebFlux WebClient挂起,Mono.timeout无法捕获它

在 Spring webflux 中抛出异常 vs Mono.error()

如何在Spring WebFlux中整合Mono Objects的结果?

Spring Webflux:控制器返回 Mono<ResponseEntity<MyPojo>> 与 Mono<MyPojo>

Webflux链接多个Mono

Spring Webflux-即使第一个Mono发出错误信号也可以解决Chained Mono的问题

如何使用 Spring Webflux 返回 GZIP 响应?

使用WebClient Spring WebFlux的多个请求

如何使用Spring WebFlux返回404

如何在Spring WebFlux中使用Jaeger?

如何在Spring Boot Webflux上从mono <user>获取用户名?

Spring WebFlux-通过WebClient为Mono内列表中的每个元素发送HTTP请求

如何在Spring Webflux中返回Mono <Map <String,Flux <Integer >>>响应?

将Spring Webflux Mono转换为Either,最好没有阻塞?

Spring webflux 将实体类转换为 Mono DTO 对象

我的Spring webflux flatMap,doOnNext,doFinally不会被内部Mono调用吗?

@RequestBody是否应该在Spring Webflux中与Mono Publisher一起包装?

Spring Webflux和@Cacheable-Mono / Flux类型的结果缓存的正确方法

从Spring WebFlux Web应用程序中的WebClient调用中缓存Mono的结果