java - JTA 事务中的 Hibernate session 范围与 Open-Session-In-View

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

说使用 JTA 是否正确?与 H 的交易 ibernate使用 Open-Session-In-View 进行对比关于 session 范围?
从我能够在 JTA 中收集 session 范围的内容来看transactions 是在 Open-Session-In-View 中的一个事务(主要是基于这个 link )模式 session 的范围是请求,你可以在其中有多个事务。

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

顺便说一句,我问的是 JTA因为我需要协调 Hibernate 之间的交易JMSEHCache所以这不是一般的最佳实践“lets-use-JTA”问题。

一泰

最佳答案

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

通常,使用同样好的旧的 View 中的开放事务模型,但是对于 UserTransaction 和 SWING 客户端来说,可能有跨越多个请求的持久事务(尽管这通常是一种不好的做法)。

BTW, I'm asking about JTA as I need to coordinate a transaction across Hibernate JMS and EHCache so this isn't a general best-practices "lets-use-JTA" question.

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

关于java - JTA 事务中的 Hibernate session 范围与 Open-Session-In-View,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4062358/

相关文章:

Java - 从文本文件加载二叉树

java - 如何更新随 Play 提供的 Hibernate?

c# - 如何在没有 session 的 CRUD .NET MVC 中保持异步上传的文件

java - 带菜单的 ZK session 变量

java - Android 证明复制我的源代码

java - 如何根据类的值将类对象添加到hashMap?

java - 使用 Spring 从 Splunk 读取数据

java - 意外回滚异常 : Transaction rolled back because it has been marked as rollback-only

java - GenerationTarget接受命令时遇到异常: Error executing DDL engine=MyISAM"via JDBC Statement

php - 如何使用 Redis 在 NodeJs 和 PHP 之间共享 session ?