我在我的项目中使用 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/