hibernate 中随机查询 数据库中的 几条数据 数据库为mysql 在执行hql的时候报错, 代码如下。求救!

shenwei0421 2011-05-11 06:07:40
String hql = "SELECT user FROM FriendsUser user ORDER BY RAND() LIMIT ?";


List<FriendsUser> list = new ArrayList<FriendsUser>();
list = getSession().createQuery(hql).setInteger(0, number).list();

代码在 createQuery(hql). 报错 请大家指点,谢谢!
...全文
210 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
shenwei0421 2011-05-11
  • 打赏
  • 举报
回复
感谢2楼 刚才自己解决了
String hql = "SELECT * FROM Friends_User order by rand() limit ?";
list = getSession().createSQLQuery(hql).addEntity(FriendsUser.class).setInteger(0, number).list();
这样就能解决这个问题。
yingzhuo2011 2011-05-11
  • 打赏
  • 举报
回复
hql/jpql 不支持 RAND() 函数。

你应该使用native sql 。

或者你把数据查找到以后再随机乱序。


java.util.Collections.shuffle(list)

67,550

社区成员

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

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