Hibernate实现limit查询方法实例介绍



Hibernate实现limit查询方法实例介绍

Query query = this.session.createQuery(“from Usersinfo u order by u.userId desc”);
query.setFirstResult(startIndex);
query.setMaxResults(length);

Hibernate实现sql中的limit的方法也很简单,原理是创建一个查询之后,给当前查询添加start和limit两个参数,之后执行查询即可。代码如下所示。

  1. public List<KnowledgeExpertArticle> findKnowledgeExpertArticleForSearch(
  2.        String keyName, Object value,final int start,final int limit) {
  3.        //
  4.        log.debug(“search knowledgeExpertArticle by :”+value);
  5.        try{
  6.            final String hql = ”form KnowledgeExpertArticle as model where model.’”+keyName+”‘ like ’%”+value+”%’ order by model.expertArticleId DESC”;
  7.            log.info(hql);
  8.            List resultList = getHibernateTemplate().executeFind(
  9.               new HibernateCallback() {
  10.                   public Object doInHibernate(Session arg0)
  11.                          throws HibernateException, SQLException {
  12.                      Query query = arg0.createQuery(hql);
  13.                      query.setFirstResult(start);
  14.                      query.setMaxResults(limit);
  15.                      return query.list();
  16.                   }
  17.               });
  18.            return resultList;
  19.        }catch(RuntimeException re){
  20.            throw re;
  21.        }
  22.     }