Java,J2EE,Weblogic,Oracle

java项目随笔
随笔 - 90, 文章 - 6, 评论 - 61, 引用 - 0
数据加载中……

getCurrentSession 与 openSession() 的区别

调用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 ()。

posted on 2008-01-04 17:09 龚椿深 阅读(3270) 评论(1)  编辑  收藏

评论

# re: getCurrentSession 与 openSession() 的区别  回复  更多评论   

灰常强大 学习了
2011-07-25 13:13 | fsdew

只有注册用户登录后才能发表评论。


网站导航: