#spring-webflux
#spring-webflux
Вопрос:
Мне нужно получить доступ к методу внутри класса, который находится внутри Mono. Как мне это сделать?
У меня есть:
public Mono<LegalPerson> find(Long id) {
return Optional.of(repository.findById(id)).orElseThrow(() -> new UserNotFoundException("Error"));
}
И вот моя проблема:
public void update(Mono<LegalPerson> legalPersonJson) {
var legalPersonDB = find(legalPersonJson.map(legalPerson -> legalPerson.getId()));
Я получаю следующую ошибку:
Incompatible types. Required Long but 'map' was inferred to Mono<R>: no instance(s) of type variable(s) R exist so that Mono<R> conforms to Long
Ответ №1:
Это то, что вам нужно сделать
Mono<Long> legalPersonDB = legalPersonJson.map(legalPerson -> find(legalPerson.getId()))
Вам все равно нужно будет подписаться на Mono, чтобы он выполнялся.