2
我已經使用Spring爲我的數據庫編寫了我的DAO層和服務層。如何在Spring中捕獲重複的列值異常
在一些表中,我們對某些列有唯一的約束。如果我們嘗試爲這些列插入重複值,那麼我們如何根據列名捕獲這些異常?基本上我需要知道哪個列導致查詢失敗。
我已經使用Spring爲我的數據庫編寫了我的DAO層和服務層。如何在Spring中捕獲重複的列值異常
在一些表中,我們對某些列有唯一的約束。如果我們嘗試爲這些列插入重複值,那麼我們如何根據列名捕獲這些異常?基本上我需要知道哪個列導致查詢失敗。
違反唯一密鑰的DAO操作將拋出DataIntegrityViolationException
。但是,您不能輕易地從中提取特定的列名稱,只是沒有詳細說明。
如果您需要此信息,您應該考慮在之前查詢數據庫您運行插入/更新,檢查是否違反約束。如果檢查失敗,那麼你有你的信息。
感謝您的回答 – Dilip 2012-01-12 06:03:39
這實際上取決於JPA背後的數據庫類型。當使用MongoDB時,拋出一個很好的DuplicateKeyException和所有必要的信息。當使用MySQL時,你可以自己完成... – Robert 2017-01-02 21:27:05