你没说清楚是什么异常,我猜想很可能是session被意外关闭的异常吧?提两点意见:
1、别在getList()中去getSession()及closeSession(),你可以把session作为getList()的一个参数。这样,只需要在 getCategoryList() 中获取/关闭会话一次。
2、既然是查询,那些事务代码是多余的,全部去掉吧。按上边两点来做,一则精简了代码,二则可能消除了你之前的异常。如果精简代码之后还出异常,请把异常信息贴出来。
1、别在getList()中去getSession()及closeSession(),你可以把session作为getList()的一个参数。这样,只需要在 getCategoryList() 中获取/关闭会话一次。
2、既然是查询,那些事务代码是多余的,全部去掉吧。按上边两点来做,一则精简了代码,二则可能消除了你之前的异常。如果精简代码之后还出异常,请把异常信息贴出来。
public void getList(List <CategoryForm> list,CategoryForm cf){
Session session = null;
List <CategoryForm> listtemp=new ArrayList();
int index=list.indexOf(cf);
try{
session = HibernateUtils.getSession();
listtemp = session.createQuery("from CategoryForm c where c.pid=?")
.setParameter(0, cf.getId())
.list();
session.close();
return list;
就好了