【问题标题】:Best Tomcat6 JNDI + Hibernate configuration for session/transaction support用于会话/事务支持的最佳 Tomcat6 JNDI + Hibernate 配置
【发布时间】:2011-02-02 21:52:51
【问题描述】:

引自 hib 官方文档:

从 3.0.1 版本开始,Hibernate 添加了 SessionFactory.getCurrentSession() 方法。最初,这假定使用 JTA 事务,其中 JTA 事务定义了当前会话的范围和上下文。鉴于众多独立 JTA TransactionManager 实现的成熟度,大多数(如果不是全部)应用程序都应该使用 JTA 事务管理,无论它们是否部署到 J2EE 容器中。基于此,您只需要使用基于 JTA 的上下文会话。 引用结束

我使用tomcat6作为servlet容器,项目需要集成Hibernate 3.2。

我找到了一篇关于如何通过 JNDI 配置 SessionFactory 查找的文档,尽管它没有按预期工作。

引用: Hibernate 可以在任何使用 JTA 的环境中工作,事实上,我们建议尽可能使用 JTA,因为它是标准的 Java 事务接口。 引用结束。

在休眠配置中,我表示 current_session_context_class= jta

现在我收到一个错误“未指定 TransactionManagerLookup”。

问题是 Tomcat 不支持 JTA,要让它工作, 如果我理解正确, 您需要将 JOTM 或其他库添加到 Tomcat。

但根据报价建议使用JTA。

在这种情况下你有什么建议?

【问题讨论】:

标签: java hibernate spring tomcat jta


【解决方案1】:

在这种情况下你有什么建议?

不使用 JTA 并使用 Open Session In View 模式来处理会话。

【讨论】:

  • 不知道是谁否决了你的问题,但我还是取消了它。你知道,Spring 文档让我觉得 Spring 是解决问题的正确决定。你有什么好的教程链接如何设置 Spring 来做我需要的事情(配置 SessionFactory 等)?
  • @EugeneP 谢谢(如果我的回答有问题,我希望至少有机会修复它)。关于 Spring + Hibernate,@matt 发布的链接是正确的查看位置。
【解决方案2】:

你的选择很清楚:

  1. 要么更改为支持 JTA 的 servlet 容器
  2. 寻找除 JTA 之外的另一种事务机制,例如自己以编程方式控制事务。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-28
    • 1970-01-01
    • 2020-11-23
    • 1970-01-01
    相关资源
    最近更新 更多