我有一個實體A具有獨特的領域,該領域基本上定義的實體處理,這意味着它是相等的,那麼則實體也完全一樣。JPA(休眠)+春季:具有獨特的違反約束
的第二點是,它絕不例外讓說如果違反約束。意思是完全預計用戶將嘗試輸入重複。
在重複的情況下,應用程序應該默默的選擇了已經存在的實體。我的問題是現在我應該做什麼,特別是在保存包含As列表的實體時。
- 剛剛捕獲異常,並從那裏去
我不知道這是很容易儘可能DataIntegrityViolationException不成立像什麼實體的情況下受到影響的級聯堅持任何容易處理的信息!
- 檢查之前保存(堅持),並與現有的更換提交的實體(即有一個ID集)
我喜歡這更然而,有一個相當大的開銷,因爲那時有可能有多個選擇(存在檢查)之前插入每個插入。
有什麼更好的辦法?
關於1)我可以做同樣的檢查,作爲2)異常發生後。然後,我可以用我們自己的例外情況來詳細說明違反了哪個唯一約束條件。我覺得這樣比較好?因爲檢查僅在需要時完成。 –
這可能會工作,但在這種情況下,你沒有保存任何東西到數據庫的情況下重複的ID,我雖然你想執行更新。 – ilcavero