IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Hibernate Java Discussion :

[HQL] Fonction de recherche aléatoire (random) ?


Sujet :

Hibernate Java

  1. #1
    Membre habitué Avatar de nesbla
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 220
    Points : 139
    Points
    139
    Par défaut [HQL] Fonction de recherche aléatoire (random) ?
    Bonjour,

    je cherche à effectuer une requete en HQL me permettant d'ordonner mes résultats de manière aléatoire.

    Si mes souvenirs sont bon il existe une méthode de ce type en SQL/Mysql :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from photo order by random(id)
    Ou quelque chose comme ça.... Je n'arrive pas à trouver une méthode équivalente avec le langage hibernate. Mon but final est lire une ligne de la base au hasard. Je faisais ça en SQL en mettant un random sur mon order by et en limitant le nombre de résultat à 1.

    Avez-vous une idée ?
    Merci
    ··· Champion des excuses bidons ··· Je viens d'apprendre que les ventes de voitures ont encore baissé de 7% en France. Y'en a marre de ces pirates qui téléchargent les voitures sur internet !

  2. #2
    Membre habitué Avatar de nesbla
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 220
    Points : 139
    Points
    139
    Par défaut
    personne ??
    ··· Champion des excuses bidons ··· Je viens d'apprendre que les ventes de voitures ont encore baissé de 7% en France. Y'en a marre de ces pirates qui téléchargent les voitures sur internet !

  3. #3
    Membre éclairé Avatar de BizuR
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    688
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 688
    Points : 757
    Points
    757
    Par défaut
    Pour éviter que tu te sentes seul, je vais écrire aussi mais je ne saurais t'aider. J'ai cherché un petit peu du coté de HQL ou Criteria mais n'ai rien trouvé dans la documentation Hibernate. Peut-être qu'une question sur le forum d'Hibernate même pourrait trouver une réponse (zone Anglaise évidemment, pas Française où l'activité est moindre )
    See you, space cowboy... and if you're satisfied, click on

  4. #4
    Membre habitué Avatar de nesbla
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 220
    Points : 139
    Points
    139
    Par défaut
    C'est gentil de répondre Oui moi non plu j'ai rien trouvé...étonnant, ca doit pourtant être possible de faire ce que je veux ! Je reste toujours à l'écoute de vos suggestion, je vais tenter de voir "ailleurs" si quelqu'un à le même problème que moi.
    ··· Champion des excuses bidons ··· Je viens d'apprendre que les ventes de voitures ont encore baissé de 7% en France. Y'en a marre de ces pirates qui téléchargent les voitures sur internet !

  5. #5
    Membre actif
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2002
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mars 2002
    Messages : 192
    Points : 252
    Points
    252
    Par défaut
    Une autre solution serait de récupérer la liste des Ids de tes objets => tu récupères une liste d'IDs coté Java, tu tire un de ces IDs au hazard et tu charges l'objet correspondant.
    L'inconvéniant évidemment et que celà te fais 2 requêtes HQL.

    En attendant mieux ça te permet de tester.

    Matthieu BROUILLARD
    Quelques tips Java & autres : mon blog

  6. #6
    Membre habitué Avatar de nesbla
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 220
    Points : 139
    Points
    139
    Par défaut
    Oui j'y ai pensé mais bon c'est pas très optimisé. Ca ferait que je remonte à chaque fois tous les id de ma base et qu'après je refasse une requete pour remonter le bon. C'est un peu trop "lourd" à mon gout comme méthode, surtout que cette méthode va être certainement la plus utilisé de mon application. Si jamais y'a vraiment aucune autre solution je ferais comme ça, encore faut-il pourvoir, parmis la liste d'id remonté en "tirer" un au hasard.

    En tout cas merci pour ta proposition.

    Loïc
    ··· Champion des excuses bidons ··· Je viens d'apprendre que les ventes de voitures ont encore baissé de 7% en France. Y'en a marre de ces pirates qui téléchargent les voitures sur internet !

  7. #7
    Membre actif
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2002
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mars 2002
    Messages : 192
    Points : 252
    Points
    252
    Par défaut
    Salut,

    tirer un ID au hasard dans une liste ne doit pas à priori poser de problèmes, un simple Random sur le nombre d'éléments et tu auras un ID.

    Par contre, si tu veux une solution plus optimisée, peut-être faudrait-il utiliser des fonctionnalités particulères de ta base. Est-ce que ton application est déployée sur une base en particulier ou dois tu garder une compatibilité de plus haut niveau ?

    Matthieu BROUILLARD
    Quelques tips Java & autres : mon blog

  8. #8
    Membre habitué Avatar de nesbla
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 220
    Points : 139
    Points
    139
    Par défaut
    Non c'est une base mysql pour le moment (et pour toujours je pense). Par contre si je fais du SQL natif ca marchera par contre, a moins que je ne me trompe, je ne vais plus remonter mon "objet" mappé par hibernate mais remonter uniquement un tableau de valeurs, chose qui ne m'interesse pas car je souhaites utiliser les relations de mon objet (many-to-one, etc.) un peu plus loin dans mon code.
    ··· Champion des excuses bidons ··· Je viens d'apprendre que les ventes de voitures ont encore baissé de 7% en France. Y'en a marre de ces pirates qui téléchargent les voitures sur internet !

  9. #9
    Membre actif
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2002
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mars 2002
    Messages : 192
    Points : 252
    Points
    252
    Par défaut
    Citation Envoyé par nesbla
    Par contre si je fais du SQL natif ca marchera
    A partir de l'exécution de ton code SQL natif tu récupère donc l'ID de ton objet que tu charges via hibernate. Tu as toujours 2 requêtes : une pour trouver un ID au hasard et une pour charger l'objet et ses dépendances.
    Quelques tips Java & autres : mon blog

  10. #10
    Membre habitué Avatar de nesbla
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 220
    Points : 139
    Points
    139
    Par défaut
    Ah oui effectivement... Je vais faire comme ça alors ça devrait être bon.

    Merci !
    ··· Champion des excuses bidons ··· Je viens d'apprendre que les ventes de voitures ont encore baissé de 7% en France. Y'en a marre de ces pirates qui téléchargent les voitures sur internet !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fonction de recherche
    Par lejimi dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 4
    Dernier message: 15/01/2006, 21h09
  2. Fonction de recherche de ligne...
    Par Zenol dans le forum Langage
    Réponses: 6
    Dernier message: 05/12/2005, 19h26
  3. fonction de recherche et recopie
    Par mavean dans le forum Access
    Réponses: 2
    Dernier message: 20/11/2005, 12h24
  4. Adapter la fonction de recherche de Plone/Zope
    Par StarNab dans le forum Zope
    Réponses: 2
    Dernier message: 07/04/2005, 16h04
  5. [String] Fonction de recherche de caractères numériques
    Par david71 dans le forum Général Java
    Réponses: 10
    Dernier message: 16/02/2005, 12h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo