ExceptionHandler не вызывается для PATCH и DELETE - PullRequest
0 голосов
/ 28 апреля 2019

Мой @ExceptionHandler не вызывается при возникновении ошибки во время PATCH или DELETE для хранилища SDR.Для POST оно срабатывает.

Я думаю, причина в том, что контроллер SDR не сбрасывает менеджер сущностей после save () или delete ().Тогда ошибка возникает, когда hibernate фиксирует сеанс, и ошибка происходит "снаружи" Spring-Web.Для POST это работает, потому что hibernate должен сбрасывать, получают сгенерированное значение PK.

Теперь у меня есть обходной путь: @RepositoryEventHandler, который вызывает flush после сохранения и удаления.Тогда мой @ExceptionHandler называется.Но я ожидаю, что это также произойдет без моего обходного пути.Что-то не так с моим конфигом?

Вот код обработчика:

@ControllerAdvice
@Slf4j
public class ExceptionHandler {

    @org.springframework.web.bind.annotation.ExceptionHandler(Exception.class)
    public void handleError(HttpServletRequest req, HttpServletResponse response, Exception e) throws IOException {
        log.error(e.getMessage(), e);

...
...