Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么Hibernate';s EntityManager.persist()未引发异常?_Java_Hibernate_Jpa_Exception_Entitymanager - Fatal编程技术网

Java 为什么Hibernate';s EntityManager.persist()未引发异常?

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

我不明白为什么我没有看到在10字节的oracle表字段中插入20个字符的异常。。。我确认对象中存在错误(太大的字符串),并且数据库确实显示了varchar2(10)

下面是代码(为了简单起见,删除了额外的逻辑)

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;