用HQL随机取10条数据怎么写?

解决方案 »

  1.   

    好像是hibernate用的sql吧,以前用过一点
      

  2.   

    哦,谢了,没用过Hibernate.呵呵。
      

  3.   

    你自己写个长度为10的数组num[]存放随机产生的10个id号
    再用个for循环构建10条hql语句查询就行了啊
      

  4.   


    FROM ClassName cn WHERE cn.id=rand()*(SELECT MAX(c.id) FROM ClassName c);
      

  5.   


    要看 你hibernate的 id生成策略也许是随即 字符串 的id呢?
      

  6.   


    这个也不多啊你自己写个  长度10的数组  那这10个id  你从哪获得?
    既然 你能放到得到10个 id放到数组里  
    那还  有必要创建数组吗
      

  7.   

    oracle中SQL
    select *
    from 
    (
    select id,name,tid,rank()over(partition by tid order by sys_guid())rnd
    from table
    ) t
    where rnd <= 5
    其中
    rank()over(partition by tid order by sys_guid())
    的作用是求按tid分组然后按照sys_guid(相当于sql中的newid)排序后这一行所处的名次 不知道 HQL里面有对应的函数不。
      

  8.   

    hql里面函数感觉应该是照搬成sql...
     应该可以,,不过楼上的写法,,呵呵,哎..不理解这些 函数...
      

  9.   


    oracle内置函数呀。所以我担心 HQL没有对应的函数。