我正试图在Spring + JPA + Hibernate环境中处理唯一的键约束违规.
我PersistenceExceptionTranslationPostProcessor
用来翻译PersistenceException
一个DataAccessException
.当有一个唯一的键约束违规时,我会期待一个DuplicateKeyException
或一个DataIntegrityViolationException
抛出,但我得到的是一个JpaSystemException
包装PersistenceException
.
使用DataAccessException
层次结构的重点不在于它的细粒度足以不必查找特定于供应商的错误代码吗?
我如何将Spring翻译PersistenceException
成更具体的DataAccessException
?
编辑:我注意到DataAccessUtils.translateIfNecessary()中的this.jpaDialect为null.我需要配置一些设置来将this.jpaDialect设置为HibernateJpaDialect吗?
谢谢!
显然你没有jpaDialect
设定.对于Hibernate,它应该如下所示:
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"/>
</property>
<!-- ... -->
</bean>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3558 次 |
最近记录: |