hibernate随机排序问题

zeeler 2009-01-15 06:43:00
大家都知道不少数据库都支持随机排序,例如MySQL 用order by rand(),oracle用order by newid()等等,在hibernate中,用什么来实现随机排序啊,比如是对用户库进行随机抽奖的应用
...全文
477 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zeeler 2009-01-27
  • 打赏
  • 举报
回复
我用mysql测试了下,hibernate是用的3.2.5,在hql中使用order by rand()可以实现,并不需要直接用SQL,用newid()是不行的;等有空再去试试其他数据库
zeeler 2009-01-20
  • 打赏
  • 举报
回复
我只关心,今后W7出来后,怎么继续用OEM版啊,如果和vista的SLIC不同的话那可麻烦了,又得重写笔记本BIOS,唉
zeeler 2009-01-15
  • 打赏
  • 举报
回复
谢谢各位哦,我先去试试Landor2004朋友的方法
时光瞄 2009-01-15
  • 打赏
  • 举报
回复
你要在Hibernate实现这种功能的话,还可以这样搞
List datas = session.createSQLQuery("select * from tb where ... order by rand()").list()

这种方式就是用数据底层的SQL实现
Landor2004 2009-01-15
  • 打赏
  • 举报
回复
hibernate中实现随机排序的功能很简单,比如hql,可以这么写
this.sessionFactory.getCurrentSession().createQuery("from User u order by newid()").list();
时光瞄 2009-01-15
  • 打赏
  • 举报
回复
晕 网络有问题发了这么多 不好意思
时光瞄 2009-01-15
  • 打赏
  • 举报
回复
List datas = session.createQuery("from ClassName c where ... order by ... group by...").list()
//让List里面的元素随机排列
Collections.shuffle(datas);

这样搞不就OK了
时光瞄 2009-01-15
  • 打赏
  • 举报
回复
List datas = session.createQuery("from ClassName c where ... order by ... group by...").list()
//让List里面的元素随机排列
Collections.shuffle(datas);

这样搞不就OK了
时光瞄 2009-01-15
  • 打赏
  • 举报
回复
List datas = session.createQuery("from ClassName c where ... order by ... group by...").list()
//让List里面的元素随机排列
Collections.shuffle(datas);

这样搞不就OK了
fulianglove 2009-01-15
  • 打赏
  • 举报
回复
这个是数据库支持的。HQL应该没有这个功能,没有那么完善。
既然MySQL,Oracle都支持了你就在SQL里用呗。
如果有数据库不支持,可以在查询的时候给每一条数据生成一个随机数列,然后order by 这个随机数列就可以了。

例如sqlserver里有rand()函数(各个数据库应该都这种生成随机数的函数) 就可以达到这种效果,
当然sqlserver有 newid()可以直接完成此功能,此处举个例子。

67,550

社区成员

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

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