Mysql
 sql >> Base de données >  >> RDS >> Mysql

API Hibernate Criteria :obtenir n lignes aléatoires

En fait, c'est possible avec des critères et un peu de peaufinage. Voici comment :

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

toute Restrictions.sqlRestriction ajoutera le mot-clé 'et' ; donc pour annuler son effet, nous allons ajouter une condition factice et injecter notre fonction rand().