Session是否关闭?急。

liu372267001 2011-09-20 12:08:43
this.getSession().createSQLQuery(sql)
this.getSession().createQuery(sql);
this.getSession().createCriteria();
SSH中Spring管理hibernate 事物。
上述三个方法Spring是否自动关闭session
有详细说明吗?谢谢,项目部署后说打开连接太多。我知道是否是session没有关闭的原因。
...全文
239 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
scrack 2011-09-20
  • 打赏
  • 举报
回复
看你用openSession还是getCurrentSession
前者需要手动关闭 后者自动关闭
惢随你动 2011-09-20
  • 打赏
  • 举报
回复
那要看你的Session是怎么来得,看你的问题说的是使用SPRING管理,应该不需要自己手动关闭
clnlkw3 2011-09-20
  • 打赏
  • 举报
回复
看你用openSession还是getCurrentSession
前者需要手动关闭 后者自动关闭
liu372267001 2011-09-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 magong 的回复:]
这要看你的getSession()方法是如何实现的。
[/Quote]
HibernateDaoSupport中的getSession方法Dao层中继承的
magong 2011-09-20
  • 打赏
  • 举报
回复
这要看你的getSession()方法是如何实现的。
magong 2011-09-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 liu372267001 的回复:]

引用 1 楼 magong 的回复:
这要看你的getSession()方法是如何实现的。

HibernateDaoSupport中的getSession方法Dao层中继承的
[/Quote]
HibernateDaoSupport本身不负责对这个Session对象进行关闭。
除开楼上们所说,还可以考虑用HibernateTransactionManager来管理Session(随事务)。
参照
http://javachikuang.iteye.com/blog/261233
绝世酱油瓶 2011-09-20
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 clnlkw3 的回复:]

看你用openSession还是getCurrentSession
前者需要手动关闭 后者自动关闭
[/Quote]
+1 一般都用getCurrentSession
夕水溪下 2011-09-20
  • 打赏
  • 举报
回复
不要用这个,肯定有问题!
bijanen19861113 2011-09-20
  • 打赏
  • 举报
回复
spring的session是交给连接池管理的吧,如果你没有显示的去关闭,那么session是不关闭的,而是在使用完之后交还给了连接池..
dzr1990 2011-09-20
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 clnlkw3 的回复:]

看你用openSession还是getCurrentSession
前者需要手动关闭 后者自动关闭
[/Quote]

这个正解,刚刚看了一下hibernate文档,在这三个方法的说明里面没有说到session关闭的问题,也就是说执行完之后session是否关闭跟这三个方法无关。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧