2009-10-28 64 views
0

我使用休眠,但我想添加一个正在使用休眠的应用程序。我面临的问题是当我想要对该组合应用程序执行全局事务时。我使用weblogic作为容器,现在的问题是,hibernate创建了自己的连接,我希望toplink应该只使用该连接......任何一个人都可以告诉我如何实现这一目标?使用toplink从休眠

回答

0

您是否在担心多重连接或组合事务?如果你想让你的toplink代码和你的hibernate代码共享事务,你可能不得不看看JTA把它们组合成一个分布式事务。否则,我不清楚你在试图完成什么

+0

请看,我的意思是说我的应用程序使用hibernate,现在我想调用使用toplink的应用程序,我面临的问题是当我尝试实现全局事务时。所以我认为,如果休眠和toplink使用相同的连接,那么我可以达到全球交易.. – 2009-10-28 06:23:59

+0

事实并非如此。调查分布式事务以及如何将toplink和hibernate集成到它们中。我建议atomikos作为一个可嵌入的JTA经理 – Jherico 2009-10-28 06:45:13

1

我建议保持Hibernate和TopLink世界分开,并为事物的Hibernate端使用一个EJB会话bean,为另一个EJB Session bean使用东西的TopLink方面。

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

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

你在EJB层做事情比直接使用JTA更容易。容器应该照顾JTA的东西给你。

+0

雅这就是我想要的。我会永远说从休眠而不是从toplink提交。看到一些案件正在为我工​​作。但只有一个案例会造成问题。看到,流是这样的,首先我打电话给休眠,然后从休眠我打电话给toplink,然后控制返回休眠一些处理,最后是从休眠提交。这是我的schenario。现在,如果在hibernate中有一些问题,但toplink工作正常,那么也根据我完成事务必须回滚,但toplink获取提交adb休眠得到回滚。 – 2009-10-28 12:15:56

+0

我想问题是与toplink,因为我创建了我自己的连接,然后我通过它休眠使用,但toplink创建自己的连接...所以我问是否有一种方法,我可以给我创建连接到toplink,以便tplink可以在此工作 – 2009-10-28 12:17:48