Hibernate 的hql不提供语句内部使用 limit 0, 2 。
分页必须按照如下处理: (下面是Spring的 getHibernateTemplate() 的方法)
/**
* 使用 hql 语句进行操作
* @param hql HSQL 查询语句
* @param start 开始取数据的下标
* @param limit 读取数据记录数
* @return List 结果集
*
*/
public List getListForPage(final String hql, final int start, final int limit){
List list = getHibernateTemplate().executeFind(new HibernateCallback(){
public Object doInHibernate(Session session) throws HibernateException,SQLException {
Query query = session.createQuery(hql);
query.setFirstResult(start);
query.setMaxResults(limit);
List list = query.list();
return list;
}
});
return list;
}