sql >> Base de Datos >  >> RDS >> Mysql

Filas de selección aleatoria a través de JPA

Solo las funciones definidas en la especificación están garantizadas para ser compatibles con todos los proveedores de JPA y RAND o RANDOM no lo son Así que no creo que puedas hacerlo en JPQL.

Sin embargo, sería posible en HQL (la cláusula order by en HQL se pasa a la base de datos, por lo que puede usar cualquier función):

String query = "SELECT o.id FROM Order o ORDER BY random()";
Query q = em.createQuery(query);
q.setMaxResults(5);

Pero, repito:

  1. Es posible que esto no funcione con otra base de datos.
  2. Es posible que esto no funcione con otro proveedor de JPA.