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