Java 在hibernate中使用Transaction类型作为Bean而不是容器来解决超时问题有什么效果?
我们使用的是hibernate框架,运行的是一个批处理作业。之前,我们的部署描述符文件ejb-jar.xml包含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
容器,我得到了如下超时异常
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
但是现在我的前辈们建议我用putBean
,而不是旧的。
现在我的批处理工作很好
但我不知道在这里更改Bean
会产生什么影响
您能告诉我事务类型Bean如何解决我的超时问题吗
容器和Bean的使用场景是什么
请引导我对这两种类型有清楚的认识
您能告诉我事务类型Bean如何解决我的超时问题吗
当事务由容器管理时,ejb业务方法的事务边界(默认情况下)被划分,这意味着所有数据库操作都在同一事务中执行
如果将事务类型从容器更改为Bean,则容器不会创建新的事务类型,这允许您手动(以编程方式)创建和划分事务
正如您所说,您只更改了配置文件,我认为问题已经解决,因为您的代码没有在事务中执行。如果没有事务,则没有超时
我不知道batch job.Previous操作的详细信息,但请记住,如果您的job.Previous操作由于意外错误而取消,则在不分析执行该操作的连续性的情况下更改此属性可能会生成不一致的数据
容器和Bean的使用场景是什么
你可以读到它