为什么 Hibernate 的 EntityManager.persist() 没有抛出异常?
Why is Hibernate's EntityManager.persist() not throwing an exception?
我不明白为什么我在尝试将 20 个字符插入 10 字节的 oracle table 字段时没有看到异常...我确认对象中存在错误(太大的字符串),并且数据库确实显示 varchar2(10).
这是代码(为简单起见删除了额外的逻辑)
boolean isSuccess = false;
arrMyObject
for(int i = 0; i < arrMyObject.length; i++) {
try {
MyObject myObject = arrMyObject[i];
em.persist(myObject);
return true;
} catch (Exception e) {
System.out.println("Error");
throw (e);
}
}
return false;
我没有收到异常(预计会出现一些 ORA 异常)。什么都没有打印出来,我在我的调用方法中收到了一个 TRUE 值。此外,没有任何内容被插入 table,这是预期的。使用有效数据,我确认插入有效。
怎么回事?
恕我直言,在您测试时,当前事务尚未提交并且休眠会话尚未刷新,因此您没有到达数据库并且没有收到错误。尝试刷新休眠会话只是为了看看(不要让刷新调用在生产中)
我不明白为什么我在尝试将 20 个字符插入 10 字节的 oracle table 字段时没有看到异常...我确认对象中存在错误(太大的字符串),并且数据库确实显示 varchar2(10).
这是代码(为简单起见删除了额外的逻辑)
boolean isSuccess = false;
arrMyObject
for(int i = 0; i < arrMyObject.length; i++) {
try {
MyObject myObject = arrMyObject[i];
em.persist(myObject);
return true;
} catch (Exception e) {
System.out.println("Error");
throw (e);
}
}
return false;
我没有收到异常(预计会出现一些 ORA 异常)。什么都没有打印出来,我在我的调用方法中收到了一个 TRUE 值。此外,没有任何内容被插入 table,这是预期的。使用有效数据,我确认插入有效。
怎么回事?
恕我直言,在您测试时,当前事务尚未提交并且休眠会话尚未刷新,因此您没有到达数据库并且没有收到错误。尝试刷新休眠会话只是为了看看(不要让刷新调用在生产中)