在我的表中,我有一个唯一约束。当我在Hibernate中添加一个违反该约束的项目时,我希望能够捕获它,以便更新该项而不是创建一个新项。
当我在周围没有设置try-catch块时
我该如何捕捉它?
当我在周围没有设置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
我该如何捕捉它?