我在Hibernate自动生成的DAO中加入HQL语句查询,程序不报错,但是当你点击多次的时候程序就死了。怎么回事

来源:百度知道 编辑:UC知道 时间:2024/06/17 15:08:03
下面是代码:
public List findByState(String mstate1,String mstate2) {
log.debug("finding all Marketing instances");
try {
Query query = this.getSession().createQuery("select market from Marketing market where market.state=? or market.state=?");
query.setString(0, mstate1);
query.setString(1, mstate2);
return query.list();
} catch (RuntimeException re) {
log.error("find all failed", re);
throw re;
}
}

记事本现写的。一般来说是不应该通过getsession来执行hql查询的,这样容易引起session未关闭的现象。
public List findByState(String mstate1,String mstate2) {
log.debug("finding all Marketing instances");
List resultList = null;
Session session = null;
try {
session = this.getSession();
Query query = session createQue.y("select market from Marketing market where market.state=? or market.state=?");
query.setString(0, mstate1);
query.setString(1, mstate2);
resultList = query.list();
} catch (RuntimeException re) {
log.error("find all failed", re);
throw re;
}final{
session.close();
}
return resultList;
}

貌似你没有关闭session

session 没关闭 在后面加上finally{

session.close();