ITPub博客

首页 > Linux操作系统 > Linux操作系统 > getCurrentSession 与 openSession() 的区别

getCurrentSession 与 openSession() 的区别

原创 Linux操作系统 作者:chinajava1314 时间:2009-03-09 16:14:34 0 删除 编辑
调用hibernate的session的问题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 ()。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9952596/viewspace-564941/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 两种单例模式
请登录后发表评论 登录
全部评论

注册时间:2009-02-17

  • 博文量
    17
  • 访问量
    14959