我正在使用Hibernate和Spring,而且我目前被一些我認爲會很容易修復的東西卡住了。我有一個類似的服務方法:Spring:在提交時捕獲ConstraintViolationException
@Transactional
public void deleteObject(ObjectClass object)
{
this.objectClassDAO.delete(object);
}
我需要當用戶試圖刪除其與另一個實體的對象,以顯示一個友好的消息。我遇到的問題是,在調用commit()之前拋出ConstraintViolationException,它在我的服務方法範圍之外運行。有沒有辦法讓spring在發生特定異常時調用某些中間代碼,以便我可以設置正確的錯誤消息?
我一直在谷歌搜索了一個多小時沒有運氣。我發現的這些方法似乎至少有點相關,看起來像是矯枉過正,就像它們在應用程序級別運行一樣。在方法級提交後是否有一種簡單的方法來攔截異常?
謝謝,我試過這個,它工作。儘管有缺點嗎?你爲什麼會用它作爲最後的手段? – JayPea 2012-02-25 00:12:37
好吧,混合自動和手動沖洗可能有點奇怪。它也可能效率較低。但是,我沒有看到這樣做的真正危險。 – 2012-02-25 00:26:21