Det är faktiskt möjligt med kriterier och lite justeringar. Så här gör du:
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();
alla Restrictions.sqlRestriction kommer att lägga till nyckelordet 'and'; så för att omintetgöra dess effekt ska vi lägga till ett dummy-villkor och injicera vår rand()-funktion.