请教一个Hibernate随机查询ID问题?table表:ID     |   title    
-------|-----------
1      |     **
2      |     **
3      |     **
4      |     **
5      |     **
.      |     **
.      |     **
.      |     **
1000   |     **如题:一个表中有1000条数据!
我想随机取出50条数据,并把ID放在Session中.[ID不能重复]用hibernate的Hql语句查询,怎么写才能更有效率.

解决方案 »

  1.   

    from table order BY random limit 50,这个用过吗
      

  2.   

    好像不行,他说没有random这个列名limit也不支持,我用的是sql server
      

  3.   

    给你两个方法!
    query.setFirstResult(起始位置);
    query.setMaxResult(取多少条);
      

  4.   

    form table top 50 order by id;
      

  5.   

    你可以用java.util.Random随即取出50个ID在进行查询
      

  6.   


    LZ的意思是随机取固定条数的数据 但是取的位置是随机的如果用query.setFirstResult的话 能随机取出一部分的数据 我不知道hibernate对这方面有没有支持 不过目前实现他的办法 就是循环查找 比如for(int i = 0;i < 50;i++){
      query.setFirstResult(随机位置);
      query.setMaxResult(1条);
    }当然 判断要做好