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})
关于java - 使用 Hibernate Criteria 获取多个随机行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10478348/