私のテーブルには、一意の制約があります。休止状態では、その制約に違反するアイテムを追加すると、それをキャッチしたいので、アイテムを作成する代わりに更新します。
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
どうすればこれをキャッチできますか?