后台使用了hibernate
String Hql = "from Blog order by blogid desc limit 10";  //这一语句为什么查出了所有行数据???
Query q = session.createQuery(Hql);在mysql里敲:select * from blog order by blogid desc limit 10     //这个就查出了最后10条数据
问题:HQL语句怎样写才能查出了最后10条数据呢???数据库是mysql

解决方案 »

  1.   

    Query qy=session.createQuery("from Blog as b  order by b.blogid asc"); 用了asc然后分页查询取前10
    这样的列子很多我搜了个----
    Hibernate 可以实现分页查询,例如:
      从第2万条开始取出100条记录
      
      Query q = session.createQuery("from Cat as c");
      q.setFirstResult(20000);
      q.setMaxResults(100);
      

  2.   

    blog是对象名,应该加个别名。然后在执行查询
      

  3.   

    实在不行的话 可以用SQL 不要用HQL 
      

  4.   

    hibernate 两种语句都支持的
    能解决问题的方法 就是好方法
      

  5.   

    用order by 显然是不好,你order by的是整个表的记录,这个是不可取的吧。order by 依我看用在where 之后还说的过去。
    我想先得到记录的总条数totalRecord,这个不是太费,也有点不咋滴。
      q.setFirstResult(totalRecord-10); 
      q.setMaxResults(10); 
      

  6.   

    难道只能先查出总记录数,再
    q.setFirstResult(20000); 
    q.setMaxResults(100);不能用一条hql语句搞定吗???
      

  7.   

    from Blog order by blogid desc betweet 1 and 10
    1和10是随便的
      

  8.   

    select * from 表名 where id>(select max(id)-20 from 表名) order by id desc
    id为自增的整数
      

  9.   

    HQL 不支持 mysql的 Limit 关键字~~~