Bonjour, j'utilise JPA avec postgresql. J'aimerais faire simplement un order by random().
En HQL si je le mets dans la requête il me le refuse, n'y a t-il pas un moyen ? Le top serait avec criteria...
Merci.
Bonjour, j'utilise JPA avec postgresql. J'aimerais faire simplement un order by random().
En HQL si je le mets dans la requête il me le refuse, n'y a t-il pas un moyen ? Le top serait avec criteria...
Merci.
Tu devrais faire le mélange dans ton applicatif, pas dans la base de données.
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Que la force de la puissance soit avec le courage de ta sagesse.
au contraire, la base de données peut faire cela beaucoup mieux...
d'autant plus que le tri sur random() est souvent utilisé pour extraire un échantillon aléatoire de données :
il est donc la plupart du temps inutile de rapatrier plus de données que nécessaire,
pour faire le travail côté client vous devez tout ramener, mettre en mémoire, avant de commencer à randomiser,
si le travail est fait côté DB, vous pouvez en plus stopper le rapatriement des données sur une condition rencontrée.
En JPA 2.1, il est possible d'appeler une fonction via l'opérateur function()
et certains ORM comme Hibernate ont des fonctionnalités pour enregistrer des fonctions via un custom dialect.
Mais pour ce cas particulier, j'irais directement en SQL natif.
Je vais essayer en SQL natif après tout ça ne concerne que quelques requêtes.
Merci.
Bon finalement j'ai utilisé des requêtes native avec order by random() ça marche bien.
Merci.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager