gpt4 book ai didi

java - 在 Spring 中将 PersistenceException 转换为 DataAccessException

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:03:59 25 4
gpt4 key购买 nike

我正在尝试处理 Spring + JPA + Hibernate 环境中的唯一键约束冲突。

我使用 PersistenceExceptionTranslationPostProcessorPersistenceException 转换为 DataAccessException。当违反唯一键约束时,我希望抛出 DuplicateKeyExceptionDataIntegrityViolationException,但我得到的只是一个包装了PersistenceException

使用 DataAccessException 层次结构的全部意义不是在于它足够细粒度而不必查找特定于供应商的错误代码吗?

我如何让 Spring 将 PersistenceException 转换为更具体的 DataAccessException

编辑:我注意到 DataAccessUtils.translateIfNecessary() 中的 this.jpaDialect 为空。是否需要配置一些设置才能将 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>

关于java - 在 Spring 中将 PersistenceException 转换为 DataAccessException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5121327/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com