我正在使用休眠,但我想添加一个使用休眠的应用程序。我面临的问题是当我想在该组合应用程序上执行全局事务时。我正在使用 weblogic 作为容器,现在的问题是休眠创建了自己的连接,我希望 toplink 应该只使用那个连接......谁能告诉我我怎么能做到这一点??????
问问题
276 次
2 回答
1
我建议将 Hibernate 和 TopLink 世界分开,将一个 EJB Session bean 用于 Hibernate 方面,另一个 EJB Session bean 用于 TopLink 方面。
使用容器管理的事务并让 WebLogic 服务器负责跨两个会话 bean 调用的提交。TopLink 工作可能需要一个数据源 + 连接池,而 Hibernate 工作可能还需要一个不同的数据源 + 连接池。
这样,您就可以在两种 ORM 技术之间进行适当的架构分离。我怀疑尝试使用来自 TopLink 工作的相同连接并将其传递给 Hibernate(反之亦然)将不起作用,因为一旦一个工具调用了提交,那么另一个工具就不能调用回滚:-)
如果您在 EJB 层做事,那将比直接使用 JTA 更容易。容器应该为您处理 JTA 的东西。
于 2009-10-28T08:36:57.337 回答
0
您是否担心多个连接或合并交易?如果您希望您的 toplink 代码和您的 hibernate 代码共享事务,您可能必须查看 JTA 以将它们组合成分布式事务。否则,我不清楚您要完成什么
于 2009-10-28T05:49:36.297 回答