2017-07-15 38 views
0

我正在使用jpa播放框架,我有一個唯一約束的字段,在「嘗試」持續具有重複值的實體後,框架顯示錯誤像這樣的頁面:如何在播放框架中獲取唯一約束數據庫異常

error page

當我試圖抓住這個異常...

try{ 
     JPA.em().persist(nArtist); 
    }catch(Exception e){ 
     form.reject("username","user already exist"); 
     return badRequest(create_artist.render(form)); 
    } 

的頁面仍然顯示消息......(我回滾異常已經嘗試過)。

Pdta:JPA.em()是我唯一稱呼他們的時間。

回答

0
  1. 的調用EntityManager.persist保證修改立即刷新到數據庫(它是在該約束衝突將出現的點)。如果你想強制刷新,調用EntityManager.flush之後persist
  2. 使用異常處理,通常會發生在你的應用程序,最重要的條件,做使用通用java.lang.Exception。在持續時間從持久層拋出的異常可能意味着比您之後的特定約束衝突更多的東西