在我的表中,我有一个独特的约束。
在 hibernate 中,当我添加一个违反该约束的项目时,我想捕获它,因此它将更新而不是创建一个项目。

当我没有设置 try-catch 块时

    updated = query.executeUpdate();

它得到以下错误
    Caused by: org.hsqldb.HsqlException: integrity constraint violation: unique constraint or index violation: WEEKROOSTERITEMUNI

当我设置以下 try-catch 块时
    try {
        updated = query.executeUpdate();

     }
   catch(PersistenceException e){
        LOG.debug("this is PersistenceException exception throw");
    }

它收到以下错误
    Caused by: javax.persistence.RollbackException: Transaction marked as rollbackOnly

当我捕获“ConstraintViolationException”时,我只是不断收到约束异常,它没有捕获任何东西。
    Caused by: org.hsqldb.HsqlException: integrity constraint violation: unique constraint or index violation: WEEKROOSTERITEMUNI

我怎么能捕获这个?

最佳答案

要捕获唯一约束,您应该捕获此异常 ConstraintViolationException

关于 hibernate - 如何捕捉 "integrity constraint violation: unique constraint or index violation",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19973277/

10-17 00:39