使用hibernate中的toplink

使用hibernate中的toplink,hibernate,toplink,distributed-transactions,Hibernate,Toplink,Distributed Transactions,我正在使用hibernate,但我想添加一个使用hibernate的应用程序。我所面临的问题是,当我想要在组合应用程序上执行全局事务时。我使用weblogic作为容器,现在的问题是hibernate创建了自己的连接,我希望toplink只使用该连接。。。有谁能告诉我如何才能做到这一点吗????您是否关心多个连接或合并事务?如果您希望toplink代码和hibernate代码共享事务,您可能需要查看JTA,将它们组合成分布式事务。否则,我不清楚您想要实现什么我建议将Hibernate和TopLin

我正在使用hibernate,但我想添加一个使用hibernate的应用程序。我所面临的问题是,当我想要在组合应用程序上执行全局事务时。我使用weblogic作为容器,现在的问题是hibernate创建了自己的连接,我希望toplink只使用该连接。。。有谁能告诉我如何才能做到这一点吗????

您是否关心多个连接或合并事务?如果您希望toplink代码和hibernate代码共享事务,您可能需要查看JTA,将它们组合成分布式事务。否则,我不清楚您想要实现什么

我建议将Hibernate和TopLink世界分开,使用一个EJB会话bean用于Hibernate端,另一个EJB会话bean用于TopLink端

使用容器管理的事务,并让WebLogic服务器负责跨两个会话bean调用的提交。TopLink工作可能需要一个数据源+连接池,Hibernate工作可能需要另一个数据源+连接池

这样,两种ORM技术之间就有了适当的架构分离。我怀疑尝试从TopLink工作区使用相同的连接并将其传递给Hibernate(反之亦然)将不起作用,因为一旦一个工具调用了commit,那么另一个工具就不能调用rollback:-)


如果您在EJB层做事情,那么这将比直接使用JTA更容易。容器应该为您处理JTA内容。

请看,我的意思是我的应用程序正在使用hibernate,现在我想调用使用toplink的应用程序,我面临的问题是在尝试实现全局事务时遇到的问题。所以我想,如果hibernate和toplink使用相同的连接,那么我就有可能实现全局事务。事务不是这样工作的。研究分布式事务以及如何将toplink和hibernate集成到其中。我推荐atomikos作为一个嵌入式JTA管理器。这就是我想要的。我总是说从hibernate提交,而不是从toplink提交。看,有些案子对我有效。但只有一种情况会造成问题。看,流程是这样的,首先我调用hibernate,然后从hibernate调用toplink,然后控制返回hibernate进行一些处理,最后是hibernate的提交。这是我的schenario。现在,如果hibernate中存在一些问题,但toplink工作正常,那么根据我的说法,完整的事务必须回滚,但toplink被提交。hibernate被回滚。我猜问题在于toplink,因为我创建了自己的连接,然后我将其传递给hibernate使用,但是toplink创建了自己的连接。。。所以我问是否有一种方法可以将我创建的连接提供给toplink,以便tplink可以处理这个问题