Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.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中使用Transaction类型作为Bean而不是容器来解决超时问题有什么效果?_Java_Hibernate_Jakarta Ee_Transactions_Ejb - Fatal编程技术网

Java 在hibernate中使用Transaction类型作为Bean而不是容器来解决超时问题有什么效果?

Java 在hibernate中使用Transaction类型作为Bean而不是容器来解决超时问题有什么效果?,java,hibernate,jakarta-ee,transactions,ejb,Java,Hibernate,Jakarta Ee,Transactions,Ejb,我们使用的是hibernate框架,运行的是一个批处理作业。之前,我们的部署描述符文件ejb-jar.xml包含容器,我得到了如下超时异常 javax.transaction.TransactionRolledbackException: Transaction is ended due to timeout: causedby: javax.ejb.TransactionRolledbackLocalException: ; nested exception is: javax.transa

我们使用的是hibernate框架,运行的是一个批处理作业。之前,我们的部署描述符文件ejb-jar.xml包含
容器
,我得到了如下超时异常

javax.transaction.TransactionRolledbackException: Transaction is ended due to timeout: causedby: javax.ejb.TransactionRolledbackLocalException:  ; nested exception is: javax.transaction.TransactionRolledbackException: Transaction is ended due to timeout
但是现在我的前辈们建议我用put
Bean
,而不是旧的。 现在我的批处理工作很好

但我不知道在这里更改
Bean
会产生什么影响

您能告诉我事务类型Bean如何解决我的超时问题吗

容器和Bean的使用场景是什么

请引导我对这两种类型有清楚的认识

您能告诉我事务类型Bean如何解决我的超时问题吗

当事务由容器管理时,ejb业务方法的事务边界(默认情况下)被划分,这意味着所有数据库操作都在同一事务中执行

如果将事务类型从容器更改为Bean,则容器不会创建新的事务类型,这允许您手动(以编程方式)创建和划分事务

正如您所说,您只更改了配置文件,我认为问题已经解决,因为您的代码没有在事务中执行。如果没有事务,则没有超时

我不知道batch job.Previous操作的详细信息,但请记住,如果您的job.Previous操作由于意外错误而取消,则在不分析执行该操作的连续性的情况下更改此属性可能会生成不一致的数据

容器和Bean的使用场景是什么

你可以读到它