Я недавно начал использовать реактив и создал простое приложение, которое использует реактивные потоки.
У меня есть следующий код, который я получаю сотруднику по empID.Я должен предоставить дополнительную информацию о emplyee моему API только в том случае, если он специально запрашивается, когда для showExtraDetails
boolean установлено значение true
.Если установлено значение false, я должен установить дополнительные детали в null, прежде чем возвращать объект employee.Прямо сейчас я использую блок в потоке, чтобы достигнуть этого.Можно ли сделать это без блока, чтобы мой метод мог вернуть Mono.
Ниже приведен код, который я сделал.
public Employee getEmployee(String empID, boolean showExtraDetails) {
Query query = new Query();
query.addCriteria(Criteria.where("empID").is(empID));
Employee employee = reactiveMongoTemplate.findOne(query, Employee.class, COLLECTION_NAME).block();
if (employee != null) {
logger.info("employee {} found", empID);
}
if (employee != null && !showExtraDetails) {
employee.getDetails().setExtraDetails(null);
}
return employee;
}