Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

API Hibernate Criteria:obtenha n linhas aleatórias


Na verdade, é possível com Critérios e um pouco de ajustes. Aqui está 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();

qualquer Restrictions.sqlRestriction adicionará a palavra-chave 'and'; então para anular seu efeito, devemos adicionar uma condição fictícia e injetar nossa função rand().