Solo le funzioni definite nelle specifiche sono garantite per essere supportate da tutti i provider JPA e da RAND
o RANDOM
non lo sono. Quindi non penso che tu possa farlo in JPQL.
Tuttavia, sarebbe possibile in HQL (la clausola order by in HQL viene trasmessa al database, quindi puoi utilizzare qualsiasi funzione):
String query = "SELECT o.id FROM Order o ORDER BY random()";
Query q = em.createQuery(query);
q.setMaxResults(5);
Ma, ripeto:
- Questo potrebbe non funzionare con un altro database.
- Questo potrebbe non funzionare con un altro provider JPA.