Hibernate分页的实现(支持模糊查询)

因为要做一个分页的功能,所以就上网随便找了一个hibernate分页的实例,但是总是报出:

org.hibernate.QueryParameterException: could not locate named parameter这个恼人的错误,却又查不到到底是那里错了。

仔细想一想,错误提示是因为我的参数没有设置,就是我没有那个参数,但是我却给它赋值了。

因为一般我们都用 query.setParameter(arg0, arg1)给hql语句添加参数。那么为什么不自己写一个完整的SQL语句直接调用

 Query query =session.createQuery(hql);

下面是整个代码:

注:Employee是一个实体类型

pageNo是页码

pageSize是分页大小

hql="from "+实体名

Map装的是实体对应的属性和属性对应的值

为了不花费功夫处理开头和结尾的where和and 问题,我添加了两个永真的表达式1=1 ,2=2

简单说当传入的map为空时,那么hql=“from Employee where 1=1 and 2=2”;

注意空格问题

public List<Employee> findPageByQuery(int pageNo, int pageSize, String hql, Map<String,Object> map)  
 {  
     List<Employee> result = null;  
     try 
     { 
      hql+=" where 1=1 and ";
      Session session=HibernateSessionFactory.getSession();
      if(!map.isEmpty())
      {
       Iterator<String> it=map.keySet().iterator();
       while(it.hasNext())
       {
        String key=it.next();
        hql=hql+key+" like "+"'%"+map.get(key)+"%'"+" and ";
       }//where stationName like '%"+stname+"%'"
      }
      hql+=" 2=2";
      System.out.println(hql);
         Query query =session.createQuery(hql);
         query.setFirstResult((pageNo - 1) * pageSize);  
         query.setMaxResults(pageSize); 
         result = query.list();  
     } catch (RuntimeException re)  
     {  
         throw re;  
     }  
     return result;  
 } 

 

希望你能直接用的上!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hibernate HQL查询 分页查询 模糊查询.docxHibernate HQL查询 分页查询 模糊查询.docxHibernate HQL查询 分页查询 模糊查询.docxHibernate HQL查询 分页查询 模糊查询.docxHibernate HQL查询 分页查询 模糊查询.docxHibernate HQL查询 分页查询 模糊查询.docxHibernate HQL查询 分页查询 模糊查询.docxHibernate HQL查询 分页查询 模糊查询.docxHibernate HQL查询 分页查询 模糊查询.docxHibernate HQL查询 分页查询 模糊查询.docxHibernate HQL查询 分页查询 模糊查询.docxHibernate HQL查询 分页查询 模糊查询.docxHibernate HQL查询 分页查询 模糊查询.docxHibernate HQL查询 分页查询 模糊查询.docxHibernate HQL查询 分页查询 模糊查询.docxHibernate HQL查询 分页查询 模糊查询.docxHibernate HQL查询 分页查询 模糊查询.docxHibernate HQL查询 分页查询 模糊查询.docxHibernate HQL查询 分页查询 模糊查询.docxHibernate HQL查询 分页查询 模糊查询.docxHibernate HQL查询 分页查询 模糊查询.docxHibernate HQL查询 分页查询 模糊查询.docxHibernate HQL查询 分页查询 模糊查询.docxHibernate HQL查询 分页查询 模糊查询.docxHibernate HQL查询 分页查询 模糊查询.docxHibernate HQL查询 分页查询 模糊查询.docxHibernate HQL查询 分页查询 模糊查询.docxHibernate HQL查询 分页查询 模糊查询.docxHibernate HQL查询 分页查询 模糊查询.docxHibernate HQL查询 分页查询 模糊查询.docxHibernate HQL查询 分页查询 模糊查询.docx

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值