首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JTA事务中的Hibernate会话范围与视图中的开放会话

JTA事务中的Hibernate会话范围与视图中的开放会话
EN

Stack Overflow用户
提问于 2010-10-31 08:25:43
回答 1查看 2K关注 0票数 2

正确的说法是,使用JTA事务与Hibernate相比,在会话范围方面使用Open-Session-In-View是不同的吗?

从我在JTA事务中收集到的会话范围来看,是一个事务(主要基于这个链接),而在Open-Session-In-View模式中,会话的作用域是请求,您可以在其中包含多个事务。

我要问的是,首先要理解,其次要验证“谁”在使用JTA时负责会话处理。

目前,在使用Open-Session-In-View时,我有一个HibernateUtil类,它处理会话的打开、检索和关闭(通过ThreadLocal<Session>)。

当我切换到使用JTA时,Hibernate会处理上面的会话操作吗?(可能是我调用的userTransaction.begin,userTransaction.rollback的衍生物)

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

伊泰

EN

回答 1

Stack Overflow用户

发布于 2011-02-21 23:07:05

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

通常,使用的是同样好的旧的开放事务在视图模型,但是对于UserTransaction和SWING客户端,有可能拥有跨越多个请求的持久事务(虽然这是一种普遍的错误做法)。

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4062358

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档