add()
で注釈が付けられたというサービスメソッドがあり@Transactional
ます。
私はそれを呼び出しますが、対応するDAOメソッド内でConstraintViolationExceptionが発生すると、指定しない場合でもトランザクションをロールバックします。
ConstraintViolationException
キャッチされ、その代わりにNotFoundException
チェック例外がスローされることを期待しています。
@Override
@Transactional(noRollbackFor = ConstraintViolationException.class)
public User add(User user) throws NotFoundException {
try {
result = userDao.add(user);
} catch (RuntimeException e) {
throw new NotFoundException("Couldn't find group");
}
}
ConstraintViolationException
トランザクションのロールバックなしでキャッチする方法はありますか?
Spring3.1.1とHibernate3.6を使用しています。