解决:hibernate查询过多时与数据库连接断开或无法再查询到数据问题。

 当使用hibernate的getSession()方法获取session时,使用后是必需关闭的。如果不关闭会产生连接过多将会导致无法再访问到数据库或连接关闭,但在查询结束后立刻关闭session又会报错,网上很多文章说在web.xml中使用一个filter方法,但又有很多人说这样会产生很多问题。经研究,发现直接在session操作过程中进行捕捉,在最后finally中关闭,这样以上产生的问题就都解决了。

 

解决办法:例子

public List getList(String hql) { List list = new ArrayList(); Session session = this.getSession(); try{ Query query = session.createQuery(hql); list = query.list(); }finally{ session.close(); } return list; }  

 

 

 

 

 

你可能感兴趣的:(java)