谁能告诉我在Hibernate中怎么做到先将需要的数据排好序后,按这个顺序分页取出数据?
例如:HQL = from User u order by u.name;
因为我用HQL写好排序的查询语句用Hibernate的分页时,Hibernate总是先分页取出数据,然后将取出的数据进行排序。
怎么解决这个问题,请高手们指教!
...全文
182315打赏收藏
求教Hibernate排序和分页的问题!
谁能告诉我在Hibernate中怎么做到先将需要的数据排好序后,按这个顺序分页取出数据? 例如:HQL = from User u order by u.name; 因为我用HQL写好排序的查询语句用Hibernate的分页时,Hibernate总是先分页取出数据,然后将取出的数据进行排序。 怎么解决这个问题,请高手们指教!
[Quote=引用 2 楼 logonin 的回复:]
Query query = session.createQuery("from User u order by u.name");
query.setMaxResults(10) //取出多少行
query.setFirstResult(1) //从第几行开始
query.executeUpdate();
[/Quote]
query.executeUpdate();
更新?
我是这样写的:
List list = session.creatQuery("select t from User t order by t.Name").setFirstResult(0).setMaxResult(5).list();
跟你的没区别啊!
你试过了吗?
这样写就是先分页再排序的!
Query query = session.createQuery("from User u order by u.name");
query.setMaxResults(10) //取出多少行
query.setFirstResult(1) //从第几行开始
query.executeUpdate();
你写的没错,List list = session.creatQuery("select t from User t order by t.Name").setFirstResult(0).setMaxResult(5).list();
是先排序再分页的。至于没有得到你想要的结果,应该是和数据库的编码格式有关。你的t.Name有中文数据吧,如果都是英文字符数据的话,结果就应该是对的。
具体原因是,不是所有的编码中,中文都是按拼音排序的。