用于会话/事务支持的最佳Tomcat6 JNDI + Hibernate配置

时间:2010-03-31 12:20:15

标签: java hibernate spring tomcat jta

来自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事务接口。 引用结束。

在hibernate配置中,我指出current_session_context_class = jta

现在我收到错误“No TransactionManagerLookup”。

问题是Tomcat不支持JTA,并且让它运行起来, 如果我理解正确, 您需要将JOTM或其他库添加到Tomcat。

但根据引用,建议使用JTA。

在这种情况下你能推荐什么?

2 个答案:

答案 0 :(得分:1)

您的选择非常明确:

  1. 更改为支持JTA的servlet容器
  2. 查找除JTA之外的其他事务机制,例如自己以编程方式控制事务。

答案 1 :(得分:0)

  

在这种情况下你能推荐什么?

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