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){ |