[英]Java mono call void method with arguments
我有以下方法:
void save(User user);
我在这个 function 中调用了这个方法:
userRepository.findById(id)
.flatMap(user -> {
userRepository.save(user);
return Mono.just(userMapper.map(user));
});
有没有一种方法可以调用save
方法而无需使用flatMap
?
我尝试了then
但它不接受 lambdas?
还有其他选择吗?
谢谢
peek
在这里似乎很有用,也许?
userRepository.findById(id)
.peek(this::save)
.map(userMapper);
reactor.core.publisher.Mono
提供了根据需要或信号运行的各种方法。 不知道为什么不想使用flatMap
。 您可以使用Mono
的各种其他方法来调用repository.save(...)
。 例如
这些所有方法都会评估何时订阅 Mono。
也不确定您正在使用哪个存储库,因为大多数Repository
(来自 Spring 数据反应式)在持久性后返回 object 例如:
<S extends T> Mono<S> save(S entity)
如果需要从数据库中加载 object 更新并返回它,那么可以考虑以下代码作为示例:
fun update(id: Long, person: Person): Mono<Person> {
return personRepository
.findById(id)
.map {it ->
p?.let {
it.name = p.name
it.password = p.password
}
return@map it
}.flatMap(personRepository::save)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.