【发布时间】:2015-08-08 17:25:28
【问题描述】:
我无法弄清楚为什么在尝试将 20 个字符插入 10 字节的 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 异常)。什么都没有打印出来,我在调用方法中收到了一个 TRUE 值。此外,没有任何东西被插入到表中,这是预期的。使用有效数据,我确认插入有效。
怎么了?
【问题讨论】:
-
你在用什么交易?
-
@NeilStockton 我是 Hibernate 的新手,我不确定这是否是您要求的答案:
-
没有。使用 EntityManager,您可以使用 LocalTransaction 执行操作(并使用 em.getTransaction().begin()/commit())或使用 JTA 事务。你需要知道你在使用什么
-
好吧,好吧... JBossTransactionManagerLookup => 'JBoss AS 的 TransactionManagerLookup 查找策略。' => JTA 容器管理事务。
-
@NeilStockton,而且你混淆了两件事,本地/Jta 和容器/用户管理的事务
标签: java hibernate jpa exception entitymanager