2010-11-26 56 views
6

我正在使用Spring 3來管理數據庫事務。每當發生異常時,我都會捕獲異常並返回相應的消息。但是,當Spring提交事務時,異常會再次提出幷包裝在org.springframework.dao.DataIntegrityValidationException中。我如何處理這個異常?我應該使用攔截器還是其他的東西?有沒有人有過這個問題?無法捕獲DataIntegrityViolationException與包裝事務

在此先感謝

回答

9

如果你的事務邊界爲您服務層(如果有的話,你應該),那麼你應該捕獲該異常的邊界之外。 Spring的工作方式是,如果異常在事務邊界之外冒泡,則事務將回滾。通過捕捉異常,你正在停止那個你可能不想要的過程。

攔截器是處理事務邊界之外的異常的好方法。

+0

現在我明白我的錯誤在哪裏。謝謝 – Neuquino 2010-11-27 21:52:06