Kun de funktioner, der er defineret i specifikationen, er garanteret at blive understøttet af alle JPA-udbydere og RAND
eller RANDOM
er det ikke. Så jeg tror ikke, du kan gøre det i JPQL.
Det ville dog være muligt i HQL (ordre efter klausulen i HQL sendes videre til databasen, så du kan bruge enhver funktion):
String query = "SELECT o.id FROM Order o ORDER BY random()";
Query q = em.createQuery(query);
q.setMaxResults(5);
Men jeg gentager:
- Dette virker muligvis ikke med en anden database.
- Dette virker muligvis ikke med en anden JPA-udbyder.