2015-10-20 48 views
0

我还是无法解决这个问题,我看到很多答案都说有错误的语法,但是我觉得没问题。我hibernate版本是4.3.8.Final如何解决hibernate查询java.lang.IllegalArgumentException:要遍历的节点不能为空?

这里是我的程序

  String hql = "from CardVoucher c where c.businessId=:businessId"; 
       Map<String,Object> params = new HashMap<String,Object>(); 
       params.put("businessId", businessId); 
       vouchers = voucherDao.find(hql, params, page, rows); 

public List<T> find(String hql, Map<String, Object> params, int page, int rows) { 
     Query q = this.getCurrentSession().createQuery(hql); 
     if (params != null && !params.isEmpty()) { 
      for (String key : params.keySet()) { 
       q.setParameter(key, params.get(key)); 
      } 
     } 
     return q.setFirstResult((page - 1) * rows).setMaxResults(rows).list(); 
    } 

enter image description here

回答

0

你的HQL是无效的:from CardVoucher c where c.businessId=:businessId应该select c from CardVoucher c where c.businessId=:businessId

+0

你的答案是错 – wanghao

+0

你是什么意思? – jaudo

+0

顺便说一句你说的还是错的 – wanghao