【发布时间】:2015-06-01 18:53:41
【问题描述】:
我的问题和这个一样 - java.lang.NoSuchMethodError: org.hibernate.SessionFactory.openSession()Lorg/hibernate/classic/Session
我在使用 Spring JDBCTemplate 时遇到以下异常。
java.lang.NoSuchMethodError: org.hibernate.Session.connection()Ljava/sql/Connection;
上面链接中接受的答案是建议将 Hibernate 降级到 Spring 支持的版本。
这对我来说是不可接受的,因为我需要最新版本的 Hibernate 才能使用它的新功能(并且还可以从错误修复中受益)。
有没有办法让它在不降级休眠的情况下工作?
【问题讨论】:
-
那么你目前有哪些版本的 Spring 和 Hibernate?
-
Spring 最高版本为 4.1.6;休眠在 4.3.8。
-
@duffymo 你可以走得更远:为什么是 Java? C 或汇编程序不能为您做什么?
-
Spring 3.0.5 和 Hibernate 是 4.3.8。我可以升级 Spring,但还有其他几个可以互操作的项目,它们都使用 Spring 3.0.5。 3.x 到 4.x 的迁移会在许多地方破坏代码并需要更改代码。我现在不想这样做……也许以后我们进行全面检修时。另外,为什么 Spring 还要依赖 Hibernate?我期待 Spring JDBC 仅依赖于 JDBC。
-
你不能指望一个非常老的 Spring 版本会自动兼容 Hibernate 中最新的不兼容更改。关于您评论的第二部分:异常的完整堆栈跟踪是什么? spring-jdbc 对 Hibernate 没有任何依赖,我怀疑你得到的错误来自 spring-jdbc 代码。