页面显示:没有输出该显示的数据
请问是不是hql语句写错了?还是哪里不对?求解^^
DAOImpl中的部分代码:
private int getTotalRecords2(String houseAddress, int priceTop,int priceBottom)
{
Session session=this.getSessionFactory().getCurrentSession();
String hql = "select count(*) from House h  where h.houseAddress like ? and h.housePrice>=? and h.housePrice<=? and h.houseState=1 "; //HQL 查询语句
Query query = session.createQuery(hql); //创建Query 对象
query.setParameter(0, "%"+houseAddress+"%");
query.setParameter(1, priceBottom);
query.setParameter(2, priceTop);
Long totalRecords = (Long) query.uniqueResult(); //单值检索
return totalRecords.intValue(); //返回总记录数
} //分页查询信息方法findPaging2()
@Override
public PageModel findPaging2(String houseAddress, int priceTop,int priceBottom, int currPage, int pageSize) {
Session session = null; //Session对象
PageModel pageModel = null;
session = this.getSessionFactory().getCurrentSession(); //获取Session
session.beginTransaction(); //开启事务
String hql = "from House h where h.houseAddress like ? and h.housePrice>=? and h.housePrice<=? and h.houseState=1"; //HQL 查询语句,按留言时间降序排序
Query query=session.createQuery(hql);
query.setParameter(0, "%"+houseAddress+"%");
query.setParameter(1, priceBottom);
query.setParameter(2, priceTop) //创建Query 对象
.setFirstResult((currPage - 1) * pageSize) //设置起始位置
.setMaxResults(pageSize);
@SuppressWarnings("unchecked")
List<House> list = query.list(); //返回结果集
System.out.println("size="+list.size());
pageModel = new PageModel(); //实例化pageModel
pageModel.setCurrPage(currPage); //设置当前页
pageModel.setList(list); //设置结果集
pageModel.setPageSize(pageSize); //设置每页记录数
pageModel.setTotalRecords(getTotalRecords2( houseAddress,priceTop,priceBottom));//设置总记录数
session.getTransaction().commit(); //提交事务
return pageModel;
}sessionhqlj2eehibernate对象

解决方案 »

  1.   

    like '%keyWords%'  应该是这样吧
      

  2.   

    like %?%
    query.setParameter(0, houseAddress);
    这样吧
      

  3.   

    1L正解,

    query.setParameter(0, "%"+houseAddress+"%");
    改为
    query.setParameter(0, "'%"+houseAddress+"%'");查不出来这样的问题可以先把sql打出来自己查数据库,那样比较容易看出问题
      

  4.   

    我刚才改成了:query.setParameter(0, "'%"+houseAddress+"%'");
    结果还是没有查到。我用SQL编辑器中能够查到数据,但是这边老出错。以下是操作截图:
    查询前:查询后:
      

  5.   

    这种写法也测试了,不过出现500错误
    like %?%
    query.setParameter(0, houseAddress);
      

  6.   

    跑了一下也没成功,建议用Criteria查询
      

  7.   

    System.out.println("%"+houseAddress+"%");
      

  8.   

    query.setParameter(0, "%小麦小区%");可以试试这样写死能不能查询出来  如果能的话就不是hibernate问题 有可能是上传上来的address值有问题 可能是编码什么的问题