Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Hibernate Criteria API:n zufällige Zeilen erhalten

Tatsächlich ist es mit Kriterien und ein wenig Feintuning möglich. So geht's:

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

jede Restrictions.sqlRestriction fügt das Schlüsselwort 'and' hinzu; Um seinen Effekt aufzuheben, fügen wir also eine Dummy-Bedingung hinzu und fügen unsere rand()-Funktion ein.