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 :

Trier selon le nombre d'occurrence de l'id


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 5
    Par défaut Trier selon le nombre d'occurrence de l'id
    Bonjour,

    J'aimerais écrire une requête en HQL qui me renvoie une liste d'entité triées selon leur nombre d'occurrence.
    Je m'explique : pour faire simple, on a une entité Livre qui est liée (ManyToMany) avec une ou plusieurs entités Categorie. J'aimerais afficher la liste des catégories contenues dans les livres présents dans le catalogue, le tout trié suivant leur nombre d'apparition dans les livres.

    Par exemple, s'il y a deux livres dont la catégorie est Science-fiction, un livre dont la catégorie est littérature et trois livres dont la catégorie est jeunesse, j'aimerais pouvoir obtenir cette liste :
    -jeunesse
    -SF
    -littérature


    Voici ce que j'aimerais écrire en Java(ne fonctionne pas car faux) :
    strQuery = "select c " +
    "from Categorie as c, count(c.id) as nb " +
    "inner join c.livres as livre " +
    "order by nb desc";

    Auriez-vous une idée de la requête à écrire pour pouvoir obtenir la liste ( getSession().createQuery(strQuery).list() ) ?

    Merci

  2. #2
    Membre émérite Avatar de Gardyen
    Homme Profil pro
    Bio informaticien
    Inscrit en
    Août 2005
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bio informaticien

    Informations forums :
    Inscription : Août 2005
    Messages : 637
    Par défaut
    le count n'a rien à faire dans les tables
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    strQuery = "select c.name " +
    "from Categorie as c" +
    "inner join c.livres as l " +
    "group by c.name " +
    "order by count(l.id) desc";
    utilise le group by pour rassembler tes résultats

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 5
    Par défaut
    Merci. Après coup, je me rends compte que ce n'était pas si compliqué que ça mais à force de chercher, on perd en lucidité...

Discussions similaires

  1. trier un array selon le nombre d'occurence
    Par thib3113 dans le forum Langage
    Réponses: 1
    Dernier message: 22/05/2012, 01h57
  2. trier des array selon le nombre de mots communs
    Par thib3113 dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 15/05/2012, 18h38
  3. Réponses: 10
    Dernier message: 01/08/2009, 02h02
  4. [MySQL] Compter/classer selon le nombre d'occurrence
    Par AIexis dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 31/10/2008, 18h39
  5. Trier selon le nombre de champs identiques
    Par figoro dans le forum Langage SQL
    Réponses: 3
    Dernier message: 11/10/2007, 14h07

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