2009-10-28 61 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