我正试图在Spring + JPA + Hibernate环境中处理唯一的键约束违规.
我PersistenceExceptionTranslationPostProcessor
用来翻译PersistenceException
一个DataAccessException
.当有一个唯一的键约束违规时,我会期待一个DuplicateKeyException
或一个DataIntegrityViolationException
抛出,但我得到的是一个JpaSystemException
包装PersistenceException
.
使用DataAccessException
层次结构的重点不在于它的细粒度足以不必查找特定于供应商的错误代码吗?
我如何将Spring翻译PersistenceException
成更具体的DataAccessException
?
编辑:我注意到DataAccessUtils.translateIfNecessary()中的this.jpaDialect为null.我需要配置一些设置来将this.jpaDialect设置为HibernateJpaDialect吗?
谢谢!