JTA事务中的Hibernate会话范围与Open-Session-In-View

时间:2010-10-31 08:25:44

标签: java hibernate session jta open-session-in-view

使用JTA与H ibernate进行交易时,使用Open-Session-In-View对会话范围进行对比是否正确?
从我能够收集的JTA事务中的会话范围是一个事务(主要基于此link),而在Open-Session-In-View模式中,会话的范围是最需要的,你可以在其中有多个交易。

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

顺便说一下,我问JTA因为我需要协调Hibernate JMSEHCache之间的交易,所以这不是一般的最佳做法“ let-use-JTA“问题。

以太

1 个答案:

答案 0 :(得分:0)

好吧,如果你正在使用JTA,那么JTA管理器(通常是EJB3容器)负责交易。

通常,使用相同的旧的开放式事务视图模型,但是对于UserTransaction,例如,SWING客户端,可能会有多个请求的持久事务(尽管它很糟糕)一般的练习。)

  

BTW,我问的是JTA,因为我需要协调跨Hibernate JMS和EHCache的事务,所以这不是一般的最佳实践“let-use-JTA”问题。

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