2010-10-31 19 views
2

它是正確的說,使用Open-Session-In-View與問候到會話範圍使用JTA交易用H ibernate反差?
根據我在JTA中收集的會話範圍,事務是一個事務(主要基於此link),而在Open-Session-In-View模式中,會話的範圍是請求的範圍,您可以在其中包含多個事務。Hibernate的Session範圍JTA事務VS開放式會議的多功能查看

我在問第一個要理解的問題,第二個問題是在使用JTA時驗證「誰」負責會話處理。
當前,當使用Open-Session-In-View時,我有一個HibernateUtil類,它處理會話的開放,檢索和關閉(通過ThreadLocal<Session>)。
當我將切換到使用JTAHibernate處理上述會話操作? (因爲也許我的呼喚userTransaction.begin衍生物,userTransaction.rollback)

順便說一句,我問JTA,因爲我需要跨HibernateJMSEHCache協調事務,所以這是不是一個一般的最佳實踐「讓我們使用JTA」的問題。

以太

回答

0

好吧,如果你使用JTA則JTA管理器(通常是EJB3容器)負責交易。

通常情況下,同樣的好老的開放式交易在視圖模型被使用,然而,隨着UserTransaction和,也就是說,一個Swing客戶端很可能有跨越多個請求的持久的交易(雖然這是一般不好的做法)。

順便說一句,我想諮詢一下JTA,因爲我需要協調跨越的Hibernate和JMS的EHCache交易所以這不是一個一般的最佳實踐「讓使用JTA的」的問題。

祝你好運。我發現外部事務管理器(我使用Atomikos)+ Spring比JBoss更適合我的需求。