Pouze funkce definované ve specifikaci jsou zaručeny, že budou podporovány všemi poskytovateli JPA a RAND
nebo RANDOM
nejsou. Takže si nemyslím, že to můžete udělat v JPQL.
Bylo by to však možné v HQL (pořadí podle klauzule v HQL se předává do databáze, takže můžete použít jakoukoli funkci):
String query = "SELECT o.id FROM Order o ORDER BY random()";
Query q = em.createQuery(query);
q.setMaxResults(5);
Ale opakuji:
- Toto nemusí fungovat s jinou databází.
- Toto nemusí fungovat s jiným poskytovatelem JPA.