[英]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.