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 :

Jointure en HQL


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
    Juillet 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 6
    Par défaut Jointure en HQL
    La solution devrait me sauter aux yeux. Mais je n'y arrive pas. Trois jours que je tourne en rond. Je me dis que j'ai besoin d'une piste pour trouver la solution

    --

    Classes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    @Entity
    @Table(name = "royaume")
    public class Royaume {    
    	@Id
            @GeneratedValue
    	@Column(name = "id")
            private Integer id;
     
            @ManyToOne
    	@JoinColumn(name="id", insertable= false, updatable=false)
            private Joueur joueur;
    }
     
    public class Village {
    	@Id @GeneratedValue
            public Integer id;
     
            @ManyToOne
    	@JoinColumn(name="id", insertable= false, updatable=false)
            public Royaume royaume;
     
            @Column(name = "nom", nullable=false, length=200)
    	public String nom;
    }

    Base de Données

    Table royaume
    id(int)
    idjoueur(int)

    Table village
    id(int)
    idroyaume(int)
    Le but étant de pouvoir récupérer tous les villages d'un royaume, j'aurais fait la jointure suivante en SQL:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select *
    from village v
    left join royaume r on r.id = village.idroyaume
    Mais j'avoue qu'en HQL, j'y comprends rien ... (=
    Quelqu'un aurais une piste vers laquelle m'aiguiller ?

  2. #2
    Membre Expert
    Inscrit en
    Août 2009
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1 073
    Par défaut
    Bonjour,

    Le code est pourtant simple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    from village v where v.royaume.id = tonId

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 6
    Par défaut
    Merci pour ta réponse. J'y avais bien pensé, mais le souci c'est que le résultat n'est pas celui escompté. Au lieu d'avoir (comme l'indique les enregistrements en BdD) la liste de mes villages pour le royaume donnée, j'ai une liste avec un seul village. Apparemment le premier rencontré.

  4. #4
    Membre Expert
    Inscrit en
    Août 2009
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1 073
    Par défaut
    Dans ce cas, le problème peut venir :

    - De ce que ton royaume n'a effectivement qu'un seul village

    - De ton appel (si tu restreint ton nombre de résultat).

    - De ce que tes villages ont le même id, ce qui fait qu'Hibernate récupère N fois le même objet, et donc dans un set => tu n'en n'a qu'un.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 6
    Par défaut
    Merci beaucoup pour ton aide ! Tu as bien éclairé ma lanterne !

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

Discussions similaires

  1. jointure en HQL
    Par onlajoy dans le forum Hibernate
    Réponses: 2
    Dernier message: 30/09/2010, 17h21
  2. Requete avec jointure en HQL
    Par Alyx² dans le forum Hibernate
    Réponses: 2
    Dernier message: 14/05/2008, 09h13
  3. Jointure requete HQL
    Par red210 dans le forum Hibernate
    Réponses: 15
    Dernier message: 15/10/2007, 17h04
  4. jointure en HQL
    Par AlienQueen dans le forum Hibernate
    Réponses: 6
    Dernier message: 15/12/2006, 07h16
  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