Endast de funktioner som definieras i specifikationen är garanterade att stödjas av alla JPA-leverantörer och RAND
eller RANDOM
är det inte. Så jag tror inte att du kan göra det i JPQL.
Det skulle dock vara möjligt i HQL (order efter klausul i HQL skickas vidare till databasen, så du kan använda vilken funktion som helst):
String query = "SELECT o.id FROM Order o ORDER BY random()";
Query q = em.createQuery(query);
q.setMaxResults(5);
Men jag upprepar:
- Detta kanske inte fungerar med en annan databas.
- Detta kanske inte fungerar med en annan JPA-leverantör.