Я должен отправить исключение, если поле пусто в коде CompletableFuture:
public CompletableFuture<ChildDTO> findChild(@NotEmpty String id) {
return ChildRepository.findAsyncById(id)
.thenApply(optionalChild -> optionalChild
.map(Child -> ObjectMapperUtils.map(Child, ChildDTO.class))
.orElseThrow(CurrentDataNotFoundException::new));
}
Идея состоит в том, что если у ребенка есть поле, пустое в этом случае lastName, я должен вызвать пользовательское исключениеЯ не совсем уверен, как мне этого добиться.
Моя идея состоит в том, чтобы использовать метод thenAccept и отправить исключение так:
public CompletableFuture<ChildDTO> findChild(@NotEmpty String id) {
return ChildRepository.findAsyncById(id)
.thenApply(optionalChild -> optionalChild
.map(Child -> ObjectMapperUtils.map(Child, ChildDTO.class))
.orElseThrow(CurrentDataNotFoundException::new))
}.thenAccept{
........................
}
ObjectMapperUtils Code:
public static <S, D> D map(final S entityToMap, Class<D> expectedClass) {
return modelMapper.map(entityToMap, expectedClass);
}
public class ChildDTO {
@NotEmpty
private String id;
@PassengerIdConstraint
private String ownerId;
@NotEmpty
private String firstName;
@NotEmpty
private String lastName;
private String nickName;
@ChildAgeConstraint
private Integer age;
@NotNull
private Gender gender;
@NotEmpty
private String language;
Я должен оценить, если lastName имеет значениепусто из БД Я должен выбросить исключение.
Есть идеи?