org.hibernate.SessionFactory.openSession()Lorg/hibernate/classic/Session

在整合hibernate与spring时出现如下错误:

Exception in thread "main" java.lang.NoSuchMethodError: org.hibernate.SessionFactory.openSession()Lorg/hibernate/classic/Session;
    at org.springframework.orm.hibernate3.SessionFactoryUtils.doGetSession(SessionFactoryUtils.java:324)
    at org.springframework.orm.hibernate3.SessionFactoryUtils.getSession(SessionFactoryUtils.java:235)
    at org.springframework.orm.hibernate3.HibernateTemplate.getSession(HibernateTemplate.java:457)
    at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:393)
    at org.springframework.orm.hibernate3.HibernateTemplate.executeFind(HibernateTemplate.java:343)

在UserDao层继承HIbernateDaoSupport类 告诉我hibernate3出现错误,然后实在没办法,到网上去搜,

在网上找了好多相关网页,都没找到具体原因,总的来说就是spring4与hibernate3不兼容,上网搜了结果说可以不用继承hibernateDaoSupport类,可以直接引用sessionFactory,直接用sessionFactory获取session对象。

    public class UserDaoImpl implements BaseDictDao{
    private SessionFactory sessionFactory;
    
    public void setSessionFactory(SessionFactory sessionFactory) {
        this.sessionFactory = sessionFactory;
        
    }
    @Override
    public List<BaseDict> findByTyeCode(String dict_type_code) {
    Session session=sessionFactory.openSession();
       return   session.createQuery("from BaseDict where dict_type_code=:code").setParameter("code", dict_type_code).list();
 

}

applicationContext.xml文件里面填写

<bean name="userDao" class="com.top.dao.UserDaoImpl">

<property name="sessionFactory" value="sessionFactory">

</bean>

这个方法我也用了,但是不知道是自己之前捣鼓的原因还是本身的原因,结果没出来。。。

大家可以试试,或许你们可以。

2.后来我发现这个办法我行不通,我又想了另一个办法,报错里面告诉我hibernate3版本与spring4不兼容,但是我applicationContext.xml 里面的dataSource都是hibernate5版本,为什么他会报3版本,后来我想了想,有可能是我hibernateDaoSupport类导错包了,

发现类里面导的包是:

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

是3版本,想了想肯定是这出错了,然后我把这个包给删掉了,点击HibernateDaoSupport 按住ctrl+1,出现hibernate版本3,4,5三个版本,然后我重新选择5版本,重新服务器,在浏览器输入网址,发现不报错了。

一个小小的失误,花了我一天半时间去搞它,真的是浪费青春啊 ,不说了继续改别的代码了,希望这个可以帮助大家!

猜你喜欢

转载自blog.csdn.net/qq_40619468/article/details/83826090
今日推荐