2

说使用JTA带有 H 的 Transactions 与ibernate使用 theOpen-Session-In-View相对于会话范围进行对比是否正确?
从我已经能够在JTATransactions 中收集到的 Session 范围是一个事务(主要基于此链接),而在Open-Session-In-View模式中,会话的范围是请求,您可以在其中有多个事务。

我问,首先要了解,其次要验证“谁”在使用时负责会话处理JTA
目前,当使用 时Open-Session-In-View,我有一个HibernateUtil处理会话的打开、检索和关闭的类(通过ThreadLocal<Session>)。
我什么时候切换到使用JTAHibernate处理上述会话操作?(作为我调用 userTransaction.begin,userTransaction.rollback 的衍生产品)

顺便说一句,我问的是JTA因为我需要协调交易Hibernate JMSEHCache所以这不是一般的最佳实践“让我们使用 JTA”的问题。

伊泰

4

1 回答 1

0

好吧,如果您使用 JTA,那么 JTA 管理器(通常是 EJB3 容器)负责事务。

通常,使用同样好的旧的 open-transaction-in-view 模型,但是对于UserTransactionSWING 客户端来说,可能会有跨越多个请求的持久事务(尽管这通常是一种不好的做法)。

顺便说一句,我问的是 JTA,因为我需要跨 Hibernate JMS 和 EHCache 协调事务,所以这不是一般的最佳实践“让使用 JTA”问题。

祝你好运。我发现外部事务管理器(我使用过 Atomikos)+ Spring 比 JBoss 更适合我的需求。

于 2011-02-21T23:07:05.573 回答