结果集只能前向访问,不能回溯访问

用SSH做项目时:在dao的实现类中写了这样一个方法:

public List findByMap(Map map, int pageNo, int pageSize,KUser kuser) {
        int firstResult = (pageNo-1)*pageSize;
  
  StringBuffer sb = new StringBuffer("from KUser as c where  c.userName="+"or c.type.typeId="+kuser.getType().getTypeId());
  if(map!=null)
  {
   Set set = map.keySet();
   Iterator it = set.iterator();
   while (it.hasNext())
   {
    String coluname = (String) it.next();
    sb.append(" and c." + coluname + "='" + map.get(coluname) + "'");
   }
  }
  
  String sql = sb.toString();
  Session session = getHibernateTemplate().getSessionFactory().getCurrentSession();
  Query query = session.createQuery(sql);
  query.setFirstResult(firstResult);
  query.setMaxResults(pageSize);
  List list = query.list();
  return list;
 }

注:这个为会员类:kuser. type为会员类型与会员类为one-to-many的关系:typeId=1为个人会员 ,typeId=2为企业会员.

我现在做的是查询功能,既通过会员类型(个人会员,企业会员),查询会员的资料。

当查询typeId=2(企业会员)的会员时

(from KUser as c where  c.userName=''or c.userCardId=''or c.company.name=''or c.type.typeId=2),显示查询结果。

但是查询typeId=1(个人会员)的会员时

(from KUser as c where  c.userName=''or c.userCardId=''or c.company.name=''or c.type.typeId=1),没有查询结果,随后抛出异常:java.sql.SQLException: ResultSet may only be accessed in a forward direction.(结果集只能前向访问,不能回溯访问 )

 

 

 

是什么原因呢?怎么解决?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值