Mysql
 sql >> Database >  >> RDS >> Mysql

API dei criteri di ibernazione:ottieni n righe casuali

In realtà è possibile con Criteria e un po' di ritocco. Ecco come:

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();

qualsiasi Restrictions.sqlRestriction aggiungerà la parola chiave 'e'; quindi per annullare il suo effetto, aggiungeremo una condizione fittizia e inietteremo la nostra funzione rand().