2016-06-27 61 views
0

我有一個具有複合唯一鍵的JPA實體,並且我編寫了一個將數據加載到此實體表中的調度程序。只有在加載時我有一個例外,以防止有唯一的密鑰違規。我想從我的數據庫中取消任何唯一的違反約束的異常,並繼續加載所有其他對象。我正在使用事務,並且我不想鎖定整個表以驗證其他用戶正在使用它的唯一性。如何繞過JPA中的唯一約束異常2

+0

解釋你的意思是'它不工作'。什麼是不工作呢?如果您收到約束異常,持久單元處於不一致狀態 - 它不知道哪些語句或對象可能導致錯誤,因此無法使用。您需要解決問題並在新的上下文/事務中重試。 – Chris

回答

0

我想你可以遍歷所有對象和包裝,通過一個
try{} catch(JPAException exp){}

如果發生異常時,負載任何特定的數據加載對象爲表這種方法,迭代將繼續和其他對象仍然被處理。

+0

我嘗試過'try {} catch(SQLException exp){continue;}',甚至嘗試{catch(Exception exp){continue;}'但它不起作用。 – cdaiga

+0

你能提供源代碼嗎? –