Alleen de functies die in de specificatie zijn gedefinieerd, worden gegarandeerd ondersteund door alle JPA-providers en RAND
of RANDOM
zijn niet. Dus ik denk niet dat je het in JPQL kunt doen.
Het zou echter wel mogelijk zijn in HQL (de volgorde per clausule in HQL wordt doorgegeven aan de database, dus je kunt elke functie gebruiken):
String query = "SELECT o.id FROM Order o ORDER BY random()";
Query q = em.createQuery(query);
q.setMaxResults(5);
Maar ik herhaal:
- Dit werkt mogelijk niet met een andere database.
- Dit werkt mogelijk niet met een andere JPA-provider.