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个随机行。

最佳答案

我认为最好的解决方案是为Student实体定义一个自动递增的数字ID,然后随机获取3个值(介于最低ID和最大ID之间),以便您可以使用以下标准:

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

10-02 03:32