Hibernate实现sql中的limit的方法也很简单,原理是创建一个查询之后,给当前查询添加start和limit两个参数,之后执行查询即可。代码如下所示。
01 | public List<KnowledgeExpertArticle> findKnowledgeExpertArticleForSearch( |
03 | String keyName, Object value, final int start, final int limit) { |
07 | log.debug( "search knowledgeExpertArticle by :" +value); |
11 | final String hql = "form KnowledgeExpertArticle as model where model.'" +keyName+ "' like '%" +value+ "%' order by model.expertArticleId DESC" ; |
15 | List resultList = getHibernateTemplate().executeFind( |
17 | new HibernateCallback() { |
19 | public Object doInHibernate(Session arg0) |
21 | throws HibernateException, SQLException { |
23 | Query query = arg0.createQuery(hql); |
25 | query.setFirstResult(start); |
27 | query.setMaxResults(limit); |
41 | } catch (RuntimeException re){ |