求教Hibernate排序和分页的问题!

mike1980 2008-07-24 11:11:57
谁能告诉我在Hibernate中怎么做到先将需要的数据排好序后,按这个顺序分页取出数据?
例如:HQL = from User u order by u.name;
因为我用HQL写好排序的查询语句用Hibernate的分页时,Hibernate总是先分页取出数据,然后将取出的数据进行排序。
怎么解决这个问题,请高手们指教!
...全文
1823 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
TianYaRider 2010-08-10
  • 打赏
  • 举报
回复
自己问题得到解决也不说说,发现好多人都这德行
mike1980 2008-07-25
  • 打赏
  • 举报
回复
OK了,结贴!
eeight 2008-07-25
  • 打赏
  • 举报
回复
关注中。。。。。。。。。。。。
sony89757 2008-07-25
  • 打赏
  • 举报
回复
这个问题我也遇到过,我现在加了一个群,这个群人气较好,也的确有高手,不但可以交流问题,而且还可以接项目赚钱,QQ群号是:陆\肆\柒\玖\捌\柒\伍\伍,不要说我做广告,看看便知,如需要的话加入试试,如果你发现好的交流群也别忘了告诉我啊!呵呵!
SDMRauquin 2008-07-24
  • 打赏
  • 举报
回复
这个应该不是程序上的错误。你把条件换成 t.Id看。

个人认为是name不好排序
gongyali2005 2008-07-24
  • 打赏
  • 举报
回复
那就全部取出排序后再分页。
mike1980 2008-07-24
  • 打赏
  • 举报
回复
[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();
跟你的没区别啊!
你试过了吗?
这样写就是先分页再排序的!
logonin 2008-07-24
  • 打赏
  • 举报
回复
Query query = session.createQuery("from User u order by u.name");
query.setMaxResults(10) //取出多少行
query.setFirstResult(1) //从第几行开始
query.executeUpdate();
steven_cheng 2008-07-24
  • 打赏
  • 举报
回复
你写的没错,List list = session.creatQuery("select t from User t order by t.Name").setFirstResult(0).setMaxResult(5).list();
是先排序再分页的。至于没有得到你想要的结果,应该是和数据库的编码格式有关。你的t.Name有中文数据吧,如果都是英文字符数据的话,结果就应该是对的。
具体原因是,不是所有的编码中,中文都是按拼音排序的。
mike1980 2008-07-24
  • 打赏
  • 举报
回复
呃,这样还是先分页后排序的啊。
SDMRauquin 2008-07-24
  • 打赏
  • 举报
回复
设置好时间格式,就order by t.date desc。
mike1980 2008-07-24
  • 打赏
  • 举报
回复
比如我要按时间降序排列,要把最近的时间的排在最前面,怎么弄?
SDMRauquin 2008-07-24
  • 打赏
  • 举报
回复
默认是不排序的,不是按主键排的。除非你在映射里面配置了

[Quote=引用 4 楼 gongyali2005 的回复:]
那就全部取出排序后再分页。
[/Quote]

这个很不好的,特别对于数据量大的时候。性能极其低下
mike1980 2008-07-24
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 SDMRauquin 的回复:]
这个应该不是程序上的错误。你把条件换成 t.Id看。

个人认为是name不好排序
[/Quote]
那个HQL我只是举个例子,如果按id排序,和没排序没什么差别啊。
默认就是按主键排序的。

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧