Как откатить транзакцию с перехваченным исключением? - PullRequest
0 голосов
/ 02 апреля 2019

У меня есть API отдыха, и я хочу перехватить все исключения, чтобы отправить пользовательское сообщение для клиента при возникновении какой-либо ошибки.

Я перехватил исключения с помощью try {...} catch (Exception e) {...} но в этих режимах откат не выполняется и данные сохраняются.

@POST
@Transactional
public Response add(Foo foo) {
    try {
        Foo add = this.service.add(foo);

        return Response.status(CREATED)
                .entity(add)
                .build();
    } catch (Exception e) {
        return Response.status(BAD_REQUEST)
                .entity("Contact the support! Error: " + e.getMessage())
                .build();
    }
}

Я хочу откатить транзакцию, поскольку данные неверны.

1 Ответ

0 голосов
/ 02 апреля 2019

Когда вы используете @Transactional, об этом уже позаботились. Вам не нужно делать откат самостоятельно (это немного похоже на попытку с ресурсами). Вам придется откатить транзакцию, если явно использовать Транзакция в finally предложении try.

...