Hibernate中的session在调用完毕以后需要关闭,以免超出连接限制。
原先的DAO代码使用的是MyEclipse自动生成的,自动生成的代码里面每次session使用完了以后并没有将其释放,所以会导致超出数据库连接数限制而无法访问的问题。
修改自动生成的代码,在每个方法后面加上finally语句块,finally里用releaseSession()方法来释放之前使用过的session。
修改后代码如下:
原先的DAO代码使用的是MyEclipse自动生成的,自动生成的代码里面每次session使用完了以后并没有将其释放,所以会导致超出数据库连接数限制而无法访问的问题。
修改自动生成的代码,在每个方法后面加上finally语句块,finally里用releaseSession()方法来释放之前使用过的session。
修改后代码如下:
public List findAll() {
Session session = getSession();
log.debug("finding all YongHu instances");
try {
String queryString = "from YongHu";
return session.createQuery(queryString).list();
} catch (RuntimeException re) {
log.error("find all failed", re);
throw re;
}finally {
releaseSession(session);
}
}