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 :

Comprehension jointure HQL


Sujet :

Hibernate Java

  1. #1
    Membre très actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2007
    Messages : 643
    Par défaut Comprehension jointure HQL
    Salut à tous,

    J'aimerais pouvoir comprendre le système de jointure avec HQL car j'ai un peu de mal avec l'explication officielle qui est d'ailleurs répétée partout sur d'autres sites.

    Quand on lit cette requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    from Cat as cat
        inner join cat.mate as mate
        left outer join cat.kittens as kitten
    Quel genre de jointure est-ce ? du inner join ou du outer join ?
    l'objet cat est joint avec lui-même à travers 2 champs différents ?

    Pourriez-vous m'aider en m'apportant des réponses plus claires sur HQL afin de le comprendre ? (pourtant je n'ai aucun soucis avec le langage SQL...)


    Merci à vous

  2. #2
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 23
    Par défaut
    Le hql de cette requête veut simplement dire que tu sélectionne tout les Cat qui on forcément un Mate, donc tout les Cat qui n ont pas de mate associe seront exclus et ensuite de ce résultat tu récupère les kittens correspondant à un Cat et à cause du left outer join aucun Cat ne sera exclus du résultat.

    En sql cette requête aurait été écrite comme cela

    Select * from Cat as cat
    inner join mate on mate.fk_cat = cat.id
    Left outer join kittens as kitten on kitten.fk_cat = cat.id;

    Finalement je ne vois pas ou est ton probleme avec les jointures car ce sont les memes... J ai peut etre mal compris quelque chose...
    Bref j espere t avoir repondu

    Bon courage

  3. #3
    Membre très actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2007
    Messages : 643
    Par défaut
    J'ai compris le HQL à travers le mapping de hibernate et pas en me basant sur une comparaison avec du SQL finalement. C'est d'ailleurs plus logique puisque ce n'est pas une requete directement en base mais qui passe bien par ces classes. C'était implicite. Mais je comprend mieux sans comparaison sql.

    Merci pour ton aide palex. Si d'autres passe sur le sujet il comprendront mieux la vision SQL de la chose

Discussions similaires

  1. Probleme avec jointure HQL
    Par tomy29 dans le forum Hibernate
    Réponses: 5
    Dernier message: 18/07/2008, 15h22
  2. requette jointure hql
    Par isselmoumg dans le forum Hibernate
    Réponses: 1
    Dernier message: 22/05/2008, 14h11
  3. Recupérer le résultat d'une requête de jointures hql
    Par amarmama dans le forum Hibernate
    Réponses: 1
    Dernier message: 12/05/2008, 08h40
  4. erreur dans une jointure HQL
    Par Galak extra dans le forum Hibernate
    Réponses: 8
    Dernier message: 14/08/2006, 00h59
  5. [HIBERNATE] Jointure en HQL
    Par faya972 dans le forum Hibernate
    Réponses: 1
    Dernier message: 04/05/2006, 11h08

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