cwanglu
2012-07-04 20:04 阅读 423
已采纳

hql 先排序 再limit 解决方法 (求教)

如题!谢谢!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

2条回答 默认 最新

  • 已采纳
    zyn010101 zyn010101 2012-07-04 20:05

    先 order by 再 limit

    点赞 评论 复制链接分享
  • aa1aa3 爱上一条鱼 2012-07-04 20:27

    [quote]hql 是传进来的参数 hql 先写的是order by 然后执行下面的 但是先执行的limit 才执行 orderby的
    Query q=this.createQuery(hql);
    //查询总记录数
    long count=this.getCout(hql, args);

    for (int i = 0; i < args.length; i++) {
    q.setParameter(i, args[i]);
    }
    //设置起始值
    q.setFirstResult((page.getPage()-1)*page.getRecords());
    //设置查询的条数
    q.setMaxResults(page.getRecords());[/quote]
    按道理直接order by,再设limit,不会出现你说的情况的啊。。

    [code="java"]hql = "from User u where u.age =:age order by u.name desc";
    Query q=this.createQuery(hql);
    q.setParameter("age", 10);
    q.setFirstResult((page.getPage()-1)*page.getRecords());
    q.setMaxResults(page.getRecords());[/code]

    点赞 评论 复制链接分享

相关推荐