java - 使用 Hibernate Criteria 获取多个随机行

标签 java hibernate hibernate-criteria

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/

相关文章:

sql-server-2008-r2 - 在 64 位 Windows 2008R2 服务器上运行 32 位 JRE

java - 在每个循环中正确使用数组名称

java - JButton 忽略指示的大小

Java AS400 "Internal driver error"与控制台应用程序

java - 未找到值或 ??当插入mysql时

java - 使用正则表达式,是否可以使用 'Followed by' 或 'Preceded by' 等表达式

java - 如何在 hibernate 中映射对实体的访问?

来自简单 SQL 查询的 Hibernate 条件查询(带有嵌套子查询)

java - 如何从标准中删除标准?

java - hibernate hbm : automatic (unwanted) update found