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 :

Difficultés avec jointures GROUP BY et ORDER BY


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2012
    Messages : 30
    Par défaut Difficultés avec jointures GROUP BY et ORDER BY
    Bonjour,

    Je rencontre un souci avec mon modèle de données. Je souhaite exécuter une requête du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT * 
    	FROM tableI AS ti, tableC AS tc, tableTC AS ttc, tableA AS ta
    	WHERE ti.tc_id=tc.id AND tc.ttc_id=ttc.id AND tc.a_id=a.id
    		AND a.name=:aname
    		GROUP BY ttc.id
    		ORDER BY i.ordre ASC
    J'ai tenté plusieurs formes de Criteria avec des Restrictions et/ou Projections mais la List que je récupère ne convient pas à ce que je veux.

    Mon dernier essai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    List<?> infos = HibernateUtil.getInstance().getCurrentSession().createCriteria(TableI.class, "i")
    	.createCriteria("tableC", "c")
    	.createCriteria("tableA", "a")
    		.add(Restrictions.eq("a.name", name))
    	.createCriteria("c.tc", "tc")
    		.addOrder(Order.asc("i.ordre"))
    	.list();
    Les données que j'obtiens ne sont pas ordonnées correctement

    Merci d'avance

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2012
    Messages : 30
    Par défaut
    Après de nouveaux essais, j'obtiens la requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    select tc3_.id as y0_ 
    	from db.tableI this_
    		inner join db.tableC c1_ on this_.c1_id=c1_.id
    		inner join db.tableTC tc3_ on c1_.tc3_id=tc3_.id
    		inner join db.tableA a2_ on c1_.a2_id=a2_.id
    	where a2_.name=?
    		group by tc3_.id
    		order by this_.ordre asc
    Le code Java correspondant est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    List<?> infos = HibernateUtil.getInstance().getCurrentSession().createCriteria(TableI.class, "i")
    	.createCriteria("tableC", "c")
    	.createCriteria("tableA", "a")
    		.add(Restrictions.eq("a.name", name))
    	.createCriteria("c.tc", "tc")
    	.setProjection( Projections.projectionList().add( Projections.groupProperty("tc.id")))
    		.addOrder(Order.asc("i.ordre"))
    	.list();
    Comment résoudre mon nouveau problème qui est la présence de tc3_.id après SELECT

Discussions similaires

  1. Aucun groupe avec jointure externe
    Par afrodje dans le forum Langage SQL
    Réponses: 8
    Dernier message: 09/12/2008, 14h38
  2. [Oracle 9i] GROUP BY avec jointure.
    Par requinc dans le forum Langage SQL
    Réponses: 3
    Dernier message: 27/04/2006, 12h29
  3. Groupe By avec jointure
    Par batoubat dans le forum Langage SQL
    Réponses: 4
    Dernier message: 27/12/2005, 14h12
  4. [SQL] Jointure,Group BY et ORDER BY COUNT qui marche pas
    Par Stef784ever dans le forum Langage SQL
    Réponses: 8
    Dernier message: 17/08/2005, 12h28
  5. requete avec jointure & group by
    Par de LANFRANCHI dans le forum Langage SQL
    Réponses: 9
    Dernier message: 27/07/2004, 14h31

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