java.lang.NoSuchMethodError: org.hibernate.SessionFactory.openSession()Lorg/hibernate/classic/Session;
在整合Spring和Hibernate时报这个错误,原因可能是你使用了sessionFactory.getCurrentSession()方法,或者是用到可Spring的HibernateTemplate方法。在Spring整合Hibernate时如果Hibernate版本为4.0则报以上错误。主要原因是spring认为hibernate4的代码写的足够好了,不用自己再写一个支持类了。所以就建议使用hibernate4的hibernateDAO了。
解决办法就是:
我们可以自己通过Open方法获得Session。
首先我们通过spring的依赖注入注入sessionFactory
<!-- 依赖注入 -->
<bean id="LoginDaoimpl" class="com.rx.daoimpl.LoginDaoimpl">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
接着我们可以在LoginDaoimpl这样写
Session session = sessionFactory.openSession();
获得session,不过使用open方法记得关闭哦!