使用Spring的SessionFactoryUtils进行Hibernate,getSession()和getNewSession()之间的实际区别是什么?
我在DAO方法中一直是getSession(),但是当它开始经常被调用时,一堆“Session is closed”异常开始出现。我将它更改为getNewSession(...),现在好像这些问题已经消失了......但是,我仍然需要知道。
请解释。
答案 0 :(得分:4)
getSession()
将尝试查找绑定到当前线程的预先存在的Session,并在必要时创建一个Session。 getNewSession()
将始终创建会话。 Javadocs:http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/orm/hibernate3/SessionFactoryUtils.html。
如果您觉得您的会话过于频繁关闭,请尝试查找会话的发布位置。