hibernate - 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

我怎么能抓住这个?