2012-05-07 6 views
1
Criteria crit=getSession().createCriteria(Student.class); 
crit.add(Restrictions.not(Restrictions.like("studentName", "John"))); 
int count=crit.list().size(); 
int index=new Random().nextInt(count); 
crit.setFirstResult(index).setMaxResults(3); 

このコードは、最初の結果のみをランダムに返し、次の3つの連続する行(ランダムではない)を返します。私は3つのランダムな行を取得したいと思います。複数のランダムな行をHibernateで取得するCitier

答えて

0

学生のエンティティに自動インクリメントの数値IDを定義し、3つの値(最低IDと最大IDの間)をランダムに取得するようにして、次のような基準を使用できるようにすることをおすすめします。

Restrictions.in("id", {randomVal1, randomVal2, randomVal3}) 
+0

コメントをいただきありがとうございます。hqlと一緒にrand() –

関連する問題