sql >> Base de Datos >  >> RDS >> Mysql

API de criterios de Hibernate:obtenga n filas aleatorias

En realidad, es posible con Criteria y un poco de ajuste. Así es como:

Criteria criteria = session.createCriteria(Table.class);
criteria.add(Restrictions.eq("fieldVariable", anyValue));
criteria.add(Restrictions.sqlRestriction("1=1 order by rand()"));
criteria.setMaxResults(5);
return criteria.list();

cualquier Restrictions.sqlRestriction agregará la palabra clave 'y'; entonces, para anular su efecto, agregaremos una condición ficticia e inyectaremos nuestra función rand().