Я использую ModelMapper и там я определяю некоторые PostConverters как:
modelMapper
.createTypeMap(TestDTO.class, Test.class)
.setPostConverter(converter -> {
Test dest = converter.getDestination();
TestDTO source = converter.getSource();
if (source.getDependency() != null) {
Dependency dependency = dependencyRepository
.findById(source.getDependency().getId())
.orElseThrow(() -> new BadRequestException("Invalid Dependency"));
dest.setDependency(dependency);
}
return dest;
});
Проблема с этим кодом заключается в том, что, если я добавлю недопустимый идентификатор для зависимости, то получу полезную нагрузку ответа, такую как:
{
"timestamp": "2018-09-18T13:51:05.203+0200",
"status": 400,
"error": "Bad Request",
"message": "ModelMapper mapping errors:\n\n1) Converter ....",
"path": "/api/test"
}
Но я хочу, чтобы в сообщении об ошибке я получил Invalid Dependency
.Любая идея, как это сделать?
Вот определение исключения BadRequestException:
@ResponseStatus(HttpStatus.BAD_REQUEST)
public class BadRequestException extends RunTimeException {
public BadRequestException() {
super("Bad Request");
}
public BadRequestException(String message) {
super(message);
}
public BadRequestException(String pattern, Object... parameters) {
super(pattern, parameters);
}
}