1. 如果继承了HibernateDaoSupport,你必须得用xml方式进行注入sessionFactory,不能用注解的方式注入,因为sessionFactory在HibernateDaoSupport里面,你看不到,所以没法用@Resource注入。否则会报异常。
2. 如果使用的是hibernateTemplate.getCurrentSession(),因为getCurrentSession得到的session是和事务绑定的,意思就是,使用getCurrentSession()就必须在有事务的环境下操作,不论你是DML或者select。所以,你必须开事务,就算你是get或者createQuery。
Session session = hibernateTemplate.getSessionFactory().getCurrentSession(); Transaction transaction = session.beginTransaction(); Query query=session.createQuery("from Programhandle o "+condition); query.setFirstResult((page-1)*pagesize); query.setMaxResults(pagesize); List<Programhandle> list = query.list(); transaction.commit(); return list;