2017-07-15 36 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。在持续时间从持久层抛出的异常可能意味着比您之后的特定约束冲突更多的东西