如何在play框架中获取唯一约束数据库异常

时间:2017-07-15 05:57:03

标签: java jpa playframework unique-constraint

我正在使用jpa开发游戏框架,我有一个具有唯一约束的字段,在"尝试"为了持久化具有重复值的实体,框架显示如下错误页面:

https://wissel.net/blog/2017/04/from-blogsphere-to-a-static-site-part-2-cleaning-up-the-html.html

当我试图抓住这个例外......

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

该页面仍显示消息...(我已尝试使用回滚异常)。

Pdta:JPA.em()是我唯一一次打电话给他们。

1 个答案:

答案 0 :(得分:0)

  1. EntityManager.persist的调用确实保证更改立即刷新到数据库(这将是出现约束违规的点)。如果您想强制刷新,请在EntityManager.flush
  2. 之后立即致电persist
  3. 使用例外来处理应用中通常会出现的情况,最重要的是,使用通用java.lang.Exception。在持续时间从持久层抛出的异常可能意味着比你之后的特定约束违规更多的东西