Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Zufällig ausgewählte Zeilen über JPA

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:

  1. Dies funktioniert möglicherweise nicht mit einer anderen Datenbank.
  2. Dies funktioniert möglicherweise nicht mit einem anderen JPA-Anbieter.