最近在用SSH三大框架研究一个项目,发现在分页的时候每点击七次界面就会假死,一直处于等待状态,界面也不能进行刷新。
后来自己想了想,肯定是因为Session没能正常关闭造成的,后来百度也说是这个问题。
然后试图手动关闭session 发现通过this.getSession().close();这样的方式也不行。
通过查API最终发现releaseSession(session)这个方法;releaseSession会关闭由当前DAO的SessionFactory创建的Hibernate Session。
通过注解的方式实现 当前类继承HibernateDaoSupport
@Resource(name="sessionFactory")
public void setSupportSessionFactory(SessionFactory sessionFactory)
{
super.setSessionFactory(sessionFactory);
}
Session session=getHibernateTemplate().getSessionFactory().openSession();
Query q= session.createQuery(hql);
super.releaseSession(session);
return xx;
通过这样的方式就彻底解决了界面假死的问题!