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报错了,网上说不能把:这种参数和?这种参数一起用,我应该怎么改才好呢?????
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报错了,网上说不能把:这种参数和?这种参数一起用,我应该怎么改才好呢?????
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);
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);
建议你用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 结束时间
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);