java - 如何捕获 org.springframework.dao.DataIntegrityViolationException : Could not execute JDBC batch update

标签 java spring hibernate jdbc

我正在尝试在 Spring 中使用 hibernate 进行 sql 查询,我能够成功执行查询,但是如果用户给出具有主键约束的相同用户 ID,或者在 int 参数中给出字符串,我会收到一些错误我想捕获这些异常并发送用户自定义异常,例如主键约束异常、NullValue 异常等

我得到的主键约束错误是:

org.springframework.dao.DataIntegrityViolationException: Could not execute JDBC batch update

有什么方法可以根据错误捕获异常,以便在该特定异常上我可以向用户发送我的自定义错误消息。现在我正在向用户发送捕获的异常错误,但用户不明白错误是什么,所以我想发送自定义错误

有没有办法根据特定错误捕获异常

最佳答案

您可能想看看 Spring ExceptionTranslator ,因为它允许您将 SQLException 转换为 DataAccessException,包括您自己的自定义版本,这将允许您为用户生成带有所需消息的异常。对于您的情况,您可以扩展 HibernateExceptionTranslator ,以获得比默认 Hibernate 实现提供给您的异常更具体的异常。

关于java - 如何捕获 org.springframework.dao.DataIntegrityViolationException : Could not execute JDBC batch update,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32442343/

相关文章:

java - 为 void 方法编写一个模拟测试

Spring Integration Junit Bridge 到 testChannel 的直接 channel

java - 来自 Spring 还是 JNDI 的 TransactionManager? (JBOSS + Spring 3 + Hibernate 4 + JTA)

java - spring security不允许用户登录,不显示任何错误

java - 添加用户名到审计表

java - ListActivity 中只出现一行

java - 是否有用于在 Eclipse 中为 Java 枚举生成 switch 语句的模板或其他东西?

Java 8 Update 20 缺少安全选项

java - 带有@Transactional 注释的多个事务管理器

java - Java 和 Hibernate 中外键的使用