Random 使用JPQL获取随机行
可以使用JPQL获取随机行吗?例如,在SQL Server中,我将使用: 从myTable中选择*,其中columnName=4 order by newid() 谢谢,Random 使用JPQL获取随机行,random,jpql,Random,Jpql,可以使用JPQL获取随机行吗?例如,在SQL Server中,我将使用: 从myTable中选择*,其中columnName=4 order by newid() 谢谢, Rod从今天(2010年4月9日)起,JPQL不支持随机排序这就是我使用的。首先获取实体的行数,然后将fetch查询的结果限制为随机行。这涉及到两个查询,因此如果这对您来说是一个问题,那么您可能需要查看本机查询。如果没有,以下是我使用的代码: public <T> T randomEntity(EntityMan
Rod从今天(2010年4月9日)起,JPQL不支持随机排序这就是我使用的。首先获取实体的行数,然后将fetch查询的结果限制为随机行。这涉及到两个查询,因此如果这对您来说是一个问题,那么您可能需要查看本机查询。如果没有,以下是我使用的代码:
public <T> T randomEntity(EntityManager em, Class<T> clazz) {
Query countQuery = em.createQuery("select count(id) from "+clazz.getName());
long count = (Long)countQuery.getSingleResult();
Random random = new Random();
int number = random.nextInt((int)count);
Query selectQuery = em.createQuery("from "+clazz.getName());
selectQuery.setFirstResult(number);
selectQuery.setMaxResults(1);
return (T)selectQuery.getSingleResult();
}
public T random实体(实体管理器em,类clazz){
Query countQuery=em.createQuery(“从“+clazz.getName()中选择计数(id));
long count=(long)countQuery.getSingleResult();
随机=新随机();
int number=random.nextInt((int)count);
Query selectQuery=em.createQuery(“from”+clazz.getName());
选择Query.setFirstResult(数字);
选择query.setMaxResults(1);
return(T)selectQuery.getSingleResult();
}