String hql = "FROM WghCustomer AS q where q.customerCode LIKE :customerCode and q.productCode LIKE :productCode and q.generateFlag LIKE :generateFlag and q.weighDate>=? and q.weighDate<=?";
Query q = super.getSession().createQuery(hql);
q.setString("customerCode", "%"+customerCode+"%");
q.setString("productCode", "%"+productCode+"%");
q.setString("generateFlag", "%"+generateFlag+"%");
q.setString(0, startDate);
q.setString(1, endDate);
q.setFirstResult((currentPage - 1) * lineSize);
q.setMaxResults(lineSize);
这样写的HQL报错了,网上说不能把:这种参数和?这种参数一起用,我应该怎么改才好呢?????

解决方案 »

  1.   


    String hql = "FROM WghCustomer AS q where q.customerCode LIKE :customerCode and q.productCode LIKE :? and q.generateFlag LIKE :?and q.weighDate>=? and q.weighDate<=?"; Query q = super.getSession().createQuery(hql); q.setString("customerCode", "%"+customerCode+"%"); q.setString("productCode", "%"+productCode+"%"); q.setString("generateFlag", "%"+generateFlag+"%"); q.setString(0, startDate); q.setString(1, endDate); q.setFirstResult((currentPage - 1) * lineSize); q.setMaxResults(lineSize);
      

  2.   


    String hql = "FROM WghCustomer AS q where q.customerCode LIKE :? and q.productCode LIKE :?and q.generateFlag LIKE :?and q.weighDate>=? and q.weighDate<=?"; Query q = super.getSession().createQuery(hql); q.setString("customerCode", "%"+customerCode+"%"); q.setString("productCode", "%"+productCode+"%"); q.setString("generateFlag", "%"+generateFlag+"%"); q.setString(0, startDate); q.setString(1, endDate); q.setFirstResult((currentPage - 1) * lineSize); q.setMaxResults(lineSize);
      

  3.   

    LZ 你是做 模糊查询是吗?
    建议你用Criteria,它在模糊查询这方面比较方便
    日期比较也很方便的
    eg:
    Criteria criteria = this.getSession(true).createCriteria( 实体类.class);
    if (参数!= null)
    criteria.add(Expression.like("字段", 参数)); 
    criteria.add(Expression.ge("rechargeDate", java.sql.Date.valueOf(start)));//start 开始时间
    criteria.add(Expression.le("rechargeDate", java.sql.Date.valueOf(end)));//end 结束时间
      

  4.   

    String hql = "FROM WghCustomer AS q where q.customerCode LIKE :customerCode and q.productCode LIKE :productCode and q.generateFlag LIKE :generateFlag and q.weighDate>=:startDateand q.weighDate<=:endDate";
            Query q = super.getSession().createQuery(hql);
            q.setString("customerCode", "%"+customerCode+"%");
            q.setString("productCode", "%"+productCode+"%");
            q.setString("generateFlag", "%"+generateFlag+"%");
            q.setString("startDate", startDate);
            q.setString("endDate", endDate);
            q.setFirstResult((currentPage - 1) * lineSize);
            q.setMaxResults(lineSize);