Я новичок в весенних данных реактивной Кассандры.В моем классе обслуживания я внедряю реализацию ReactiveCassandraRepository, которая возвращает Mono моего pojo, если находит его по заданному идентификатору.
public Mono<MyPojo> getResult(String id) {
return myRepository.findById(id)
.flatMap(result -> result!=null ? getDecision(result) :
Mono.error(new Exception("result not found for id: "+id)));
}
private Mono<? extends MyPojo> getDecision(MyPojoDto result) {
if(result.getRecommendation()==0) {
return Mono.just(MyPojo.builder().result("Accept").build());
}
else
{
return Mono.just(MyPojo.builder().result("Reject").build());
}
}
Приведенный выше код работает нормально, когда хранилище находит запись для данного идентификатора.Но если запись не найдена, я не уверен, что происходит.Я не получаю никакого журнала, который возвращает любое исключение.
Вышеуказанный метод getResult вызывается моим Spring-контроллером.Но я не уверен, как справиться с этим в моем контроллере, чтобы я мог отправить соответствующий ответ своим потребителям.
Ниже приведен код моего контроллера.
@RequestMapping(value = “/check/order/{id}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public Mono<ResponseEntity<MyPojo>> getResult(
@PathVariable(“id") id id) {
return myService.getResult(id)
.flatMap(result -> result!=null ?
getCustomResponse(id, result,HttpStatus.OK) :
getCustomResponse(id,result, HttpStatus.INTERNAL_SERVER_ERROR));
}
Как мы справляемся с Mono.error () в вызывающем методе.
С уважением,
Vinoth