用hibernate,怎么随机取出一条数据?
我用的是oracle,在oracle里直接用sql语句,用top或limit,都可以,但是,把sql语句放倒hibernate里就不行。
求解?
hibernate

解决方案 »

  1.   

    楼主用的是12c吗? oracle中怎么用的top呢? 可否把sql贴出来?oracle的随机函数是dbms_random中的
      

  2.   

    select * from usm_item t where t.item_bank_child_id= 4 and t.item_type=1 order by RAND() limit 1;
    这是sql语句
      

  3.   

    在hibernate中执行,不识别limit
      

  4.   


    limit是MySQL分页用的,Oracle中用top+子查询实现。可以看看这篇文章:http://blog.csdn.net/justdb/article/details/8200635
      

  5.   


    不好意思,刚说错了,SQLServer才是top。Oracle中是rownum+子查询。
      

  6.   

    limit 不支持Oracle你需要切换 Hibernate 的方言.
      

  7.   


    不好意思,刚说错了,SQLServer才是top。Oracle中是rownum+子查询。那具体的用法呢?
      

  8.   


    不好意思,刚说错了,SQLServer才是top。Oracle中是rownum+子查询。那具体的用法呢?可以看看这篇文章:http://blog.csdn.net/justdb/article/details/8200635
      

  9.   

    我写了一个,可我测试的时候有点问题,有时候没有记录,有时候返回好几条记录,我没找到原因在哪儿,大家也帮我看一下select * from (select rownum rn, e.* from emp e)t where t.rn=round(dbms_random.value(1,(select count(*) from emp)))