java - 从 SQL Exception 对象获取引发异常的字段和表名称

标签 java sql hibernate spring jpa

我在我的项目中使用 Hibernate JPA 和 Spring。假设如果我尝试插入具有重复键值的记录,插入查询将引发异常。

现在是否可以在运行时从SQL Exception对象中获取表名、字段名以及可能的异常原因!?

最佳答案

正如其他答案所提到的,大多数时候您都受限于数据库提供的内容。然而,在某些情况下,Hibernate 可以告诉您问题 - 它不会是表和字段,而可能是实体和属性

例如,如果您尝试在列中放入太大的值,您可以使用以下命令:

try {
    entityManager.persist(object);

} catch (InvalidStateException e) {

    log.info("Caught Hibernate exception: #0", e.getClass().getName());

    InvalidValue[] invalidValues = e.getInvalidValues();

    for(InvalidValue invalidValue : invalidValues) {
        log.info("Invalid Property #0 has value: #1", invalidValue.getPropertyName(), invalidValue.getPropertyName());
    }
}

关于java - 从 SQL Exception 对象获取引发异常的字段和表名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/829424/

相关文章:

sql - SQL 中日志记录表的适当查询和索引

sql - 如何使用 Oracle 索引

java - 为什么我的 Eclipse 中 Hibernate 中的文件映射总是设置默认 2.0

java - 在 Struts 2 spring 应用程序中添加安全性

java - x64 Windows 7 版本的 GStreamer

java - 如何使用 LibGDX 生成透明的 PNG 图像?

mysql - 选择一行时增加一个值 SQL

java - ClassNotFoundException : fuseki-server. jar

java - 如何使用 Java 启动和停止 Tomcat 容器?

java - 在 JNDI 数据源 Hibernate 和 weblogic 环境中使用 JUnit 进行单元测试?