Nur die in der Spezifikation definierten Funktionen werden garantiert von allen JPA-Anbietern und RAND
unterstützt oder RANDOM
sind nicht. Also ich glaube nicht, dass Sie es in JPQL tun können.
In HQL wäre es jedoch möglich (die order by-Klausel in HQL wird an die Datenbank weitergegeben, sodass Sie jede Funktion verwenden können):
String query = "SELECT o.id FROM Order o ORDER BY random()";
Query q = em.createQuery(query);
q.setMaxResults(5);
Aber ich wiederhole:
- Dies funktioniert möglicherweise nicht mit einer anderen Datenbank.
- Dies funktioniert möglicherweise nicht mit einem anderen JPA-Anbieter.