У меня проблема с одним из моих контроллеров, который берет список из тела, чтобы добавить профессии пользователю.Профессию можно передать как идентификатор или просто имя (если профессия не существует в базе данных), в этом случае я беру название профессии, добавляю его и продолжаю цикл, чтобы добавить остальные.Но когда я использую вызов хранилища, чтобы добавить эту новую профессию по имени, это заставляет меня возвращать Результат, и я пока не хочу возвращать Результат.Я просто хочу продолжить цикл остальных профессий в списке.
Как мне избежать этого возврата?
Вот мой код:
@ContentType(APPLICATION_JSON)
public CompletionStage<Result> setProfessions() {
// More code here...
// Here start looping items in json
// that can contains "id_profession" or "name_profession"
jsonToPersonList.forEach(profession -> {
boolean needNewProfession = false;
if (profession.getIdProfession() == null && profession.getIdSector() != null && profession.getNameProfession() != null) {
//we have to create non-official profession
needNewProfession = true;
}
if (needNewProfession) {
Profession aux = new Profession();
aux.setIdSector(profession.getIdSector());
aux.setName(profession.getNameProfession());
aux.setOfficial(false);
return professionRepository.add(aux).thenApplyAsync(p -> p, executionContext.current()).thenComposeAsync(newProfession -> {
if (newProfession != null) {
profession.setNameProfession(null);
profession.setIdProfession(newProfession.getId());
return professionRepository.addSectorToProfession(newProfession.getId(), profession.getIdSector()).thenApplyAsync(p -> p, executionContext.current()).thenComposeAsync(prof -> {
if (prof != null) {
profession.setIdUser(Long.parseLong(id));
return //This is the return that is forcing me, but I need to escape
} else {
return CompletableFuture.completedFuture(internalServerError(JsonUtil.responseFromJsonNode(false, null, UNEXPECTED_SERVER_ERROR)));
}
}, executionContext.current());
} else {
return CompletableFuture.completedFuture(internalServerError(JsonUtil.responseFromJsonNode(false, null, UNEXPECTED_SERVER_ERROR)));
}
}, executionContext.current());
}else{
profession.setIdUser(Long.parseLong(id));
}
});
return professionRepository.setProfessions(jsonToPersonList).thenApplyAsync(stream -> {
//More code here...