Java 为什么Hibernate';s EntityManager.persist()未引发异常?
我不明白为什么我没有看到在10字节的oracle表字段中插入20个字符的异常。。。我确认对象中存在错误(太大的字符串),并且数据库确实显示了varchar2(10) 下面是代码(为了简单起见,删除了额外的逻辑)Java 为什么Hibernate';s EntityManager.persist()未引发异常?,java,hibernate,jpa,exception,entitymanager,Java,Hibernate,Jpa,Exception,Entitymanager,我不明白为什么我没有看到在10字节的oracle表字段中插入20个字符的异常。。。我确认对象中存在错误(太大的字符串),并且数据库确实显示了varchar2(10) 下面是代码(为了简单起见,删除了额外的逻辑) boolean issucess=false; 棱体 for(int i=0;i“JBoss AS的TransactionManagerLookup查找策略”。=>JTA容器管理的事务。@NeilStockton,此外,您混淆了两件事,本地/JTA和容器/用户管理的事务 boolean
boolean issucess=false;
棱体
for(int i=0;i
我没有收到异常(期待一些异常)。没有打印任何内容,并且我在调用方法中收到一个真实值。此外,不会向表中插入任何内容,这是预期的。有了有效的数据,我确认插入工作
发生了什么?IMHO,在您测试时,当前事务尚未提交,并且hibernate会话尚未刷新,因此您没有访问数据库,也没有收到错误。尝试刷新hibernate会话只是为了查看(不要让flush调用进入生产环境)以及您使用的是什么事务?@NeilStockton我是hibernate新手,我不确定这是否是您想要的答案:否。使用EntityManager,您可以使用LocalTransaction执行操作(并让em.getTransaction().begin()/commit())或者使用JTA事务。你需要知道你在用什么好吧,好吧。。。JBossTransactionManagerLookup=>“JBoss AS的TransactionManagerLookup查找策略”。=>JTA容器管理的事务。@NeilStockton,此外,您混淆了两件事,本地/JTA和容器/用户管理的事务
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;