ConstraintViolationException VS DataIntegrityViolationException

时间:2009-08-07 20:20:14

标签: hibernate spring

我正在编写一个Spring应用程序,似乎当我遇到数据库错误时,有时会抛出Hibernate的ConstraintViolationException,有时抛出Spring DataIntegrityViolationException。是否有理由抛出而不是另一个?他们的意思是不同的吗?

1 个答案:

答案 0 :(得分:5)

如果您通过HibernateTemplate执行Hibernate调用,那么Spring会将任何Hibernate异常(例如ConstraintViolationException)转换为Spring异常层次结构(例如DataIntegrityViolationException)。如果您不使用HibernateTemplate,那么本机Hibernate异常将会通过。两者都是RuntimeExceptions,因此不需要显式异常处理,因此您将看到哪一个并不总是很明显。