getCurrentSession 与 openSession() 的区别

来源:互联网 发布:python 绘制频域曲线 编辑:程序博客网 时间:2024/06/10 05:17

调用hibernatesession的问题getCurrentSession openSession() 的区别

 

该项目设计为 一个 item 下有多个 question ,而一个question 下有多个 answer 。因此,需多次循环查询数据库。

测试时,数据库连接池的最大数及最小数都设为 1.

 

测试发现,为getHibernateTemplate().getSessionFactory().openSession()时,web 页面无法正常显示(白板),此时别的业务逻辑如果需要连接数据库则都不能执行;查询 log4j 日志发现,没有打印出openSession()所在方法的sql 后来改为 getHibernateTemplate().getSessionFactory().getCurrentSession()web 页面显示正常。

 

getCurrentSession () 使用当前的session

openSession()         重新建立一个新的session

 

在一个应用程序中,如果DAO 层使用Spring hibernate 模板,通过Spring 来控制session 的生命周期,则首选getCurrentSession ()

原创粉丝点击