各位高手,我遇到一个很奇怪的问题
我是用Spring + Hibernate来做开发,使用Spring来管理Hibernate的Session
dao继承HibernateDaoSupport,所有的查询都使用
this.getHibernateTemplate().get
this.getHibernateTemplate().find
之类的方式来作查询
我上网查过,一般都说getHibernateTemplate会把session交给spring托管,一般查询完之后就会关闭session
但我的程序看上去没有关闭session,通常执行一阵子,程序就会卡住没反应,既不报错,也不执行下去
到数据库一看,发现有很多的连接在连着数据库,但这个数据库只有我一个人,只有这一个程序会使用
所以我怀疑是Spring没有关闭数据库连接导致连接池满了。
请问各路高手这应该如何解决?
------解决方案--------------------
用
try{
/*
*
*/
}finally{
session.close();
}
------解决方案--------------------
交给了spring管理的session是会关闭的,在源代码里面实现了一个后置增强,会去判断存在在关闭。