来自 hib 官方文档的引用:
从 3.0.1 版本开始,Hibernate 添加了 SessionFactory.getCurrentSession() 方法。最初,这假定使用 JTA 事务,其中 JTA 事务定义了当前会话的范围和上下文。鉴于众多独立 JTA TransactionManager 实现的成熟度,大多数(如果不是全部)应用程序都应该使用 JTA 事务管理,无论它们是否部署到 J2EE 容器中。基于此,您只需要使用基于 JTA 的上下文会话。 报价结束
我使用tomcat6作为servlet容器,需要将Hibernate 3.2集成到项目中。
我找到了一个文档如何通过 JNDI 配置 SessionFactory 查找,尽管它没有按预期工作。
Quote: Hibernate 可以在任何使用 JTA 的环境中工作,事实上,我们建议尽可能使用 JTA,因为它是标准的 Java 事务接口。报价结束。
在休眠配置中,我表示 current_session_context_class = jta
现在我收到一个错误“没有指定 TransactionManagerLookup”。
问题是 Tomcat 不支持 JTA,为了让它工作,如果我理解正确,你需要将 JOTM 或其他库添加到 Tomcat。
但是根据报价建议使用JTA。
在这种情况下你有什么建议?