Hibernate Unchecked исключение не отменено - PullRequest
0 голосов
/ 08 июля 2011

Я думаю, что я не понимаю что-то с непроверенным исключением.

Я использую Spring / Hibernate.

В транзакции я перехватываю исключение NullPointerException (поэтому не проверяется), но в конце этого периода моя транзакция не откатывается.

Это потому, что я ловлю NPE внутри того же метода, который бросает NPE? Это единственный diffrent, который я вижу из другой части кода, где я выкидываю исключение IllegalArgumentException, которое перехватывается в другом методе из вызывающего его (и заканчивающегося откатом).

Спасибо,

1 Ответ

2 голосов
/ 08 июля 2011

Spring выполнит откат транзакции, если необработанное исключение пройдет через транзакционный прокси.

Если вы перехватываете исключение внутри метода обернутых данных, транзакция не будет автоматически отменена.

Если вам по какой-то причине нужно перехватить исключение, вы можете либо сбросить его, либодругой (тот, который имеет смысл, учитывая контракт метода) или откат транзакции вручную.Имейте в виду, что этот последний вариант нарушает прозрачность пружины.

...