sql >> Database teknologi >  >> RDS >> Mysql

Tilfældigt udvalgte rækker via JPA

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:

  1. Dette virker muligvis ikke med en anden database.
  2. Dette virker muligvis ikke med en anden JPA-udbyder.


  1. Bruger du resultatet af et udtryk (f.eks. funktionskald) i en parameterliste med lagret procedure?

  2. Fejl i udviklingen på Heroku

  3. mysql tæller ikke række to gange, hvis kolonnedata er duplikeret

  4. Træk kolonner fra afledt tabel og summer dem i én MySQL SELECT-sætning