我无法弄清楚为什么我没有看到尝试将20个字符插入到10byte oracle表字段中的异常...我确认对象中存在错误(太大的字符串),并且数据库确实显示了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异常)。什么都没打印出来,我在调用方法中收到了一个真值。此外,没有任何内容插入到表中,这是预期的。有效数据我确认插入工作。
怎么回事?
答案 0 :(得分:1)
恕我直言,在你测试的时候,当前的事务还没有提交,而且hibernate会话还没有被刷新,所以你没有到达数据库并且没有收到错误。尝试刷新休眠会话只是为了看(不要让生产中的刷新调用)