невозможно поймать исключение DataIntegrityViolationException с завернутой транзакцией - PullRequest
6 голосов
/ 26 ноября 2010

Я использую Spring 3 для управления транзакциями в БД. Всякий раз, когда возникает исключение, я ловлю исключение и возвращаю соответствующее сообщение. Но когда Spring фиксирует транзакцию, исключение снова вызывается и помещается в org.springframework.dao.DataIntegrityValidationException. Как я могу справиться с этим исключением? я должен использовать перехватчики или что-то еще? Кто-нибудь уже имел эту проблему раньше?

Заранее спасибо

1 Ответ

9 голосов
/ 26 ноября 2010

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

Перехватчики - хороший способ справиться с исключением за пределами границы транзакции.

...