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 :

Component avec jointures


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 142
    Par défaut Component avec jointures
    Bonjour,

    Je souhaite utiliser des "component" hibernate

    J'ai une classe personne et une classe adresse

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    @Entity
    @Table(name = "PERSONNE")
    @SecondaryTable (name= "ADRESSE", pkJoinColumns = {@PrimaryKeyJoinColumn (name="idPersonne")})
    public class Personne {
     
    @Embedded
    @AttributeOverrides( {
    @AttributeOverride(
    name = "rue", column = @Column(name="RUE", table = "ADDRESS")),
     
    @AttributeOverride(
    name = "ville", column = @Column(name="VILLE", table = "ADDRESS")),		
     
    @AttributeOverride(
    name = "code", column = @Column(name="cp", table = "ADDRESS")
    )
    })
    private Adresse adresse;
     
    @Transcient
    public Adresse getAdress(){
    ....
    }
     
    }
     
    public class Adresse {
     
        private int idForeignKey;
     
        private String typeKey;
     
        private String rue;
        ....
     
        private String code; 
     
     
    }
    J'ai donc 2 classes et deux tables, dans Personne j'ai un composant Adresse.
    Quand Hibernate génère la requête de sélection d'une personne il fait bien un left outter join sur la table adresse avec personne.idpersonne = adresse.idpersonne mais dans le select il n'y a pas les colonnes de la table adresse.

    C'est sans doute du au @Transcient que j'ai mis devant le getAddress();
    Si je ne le mets pas Hibernate génère
    un select Personne.adresse et forcément il n'y a pas de colonne adresse dans la table Personne, il devrait faire select adresse.rue, adresse.code ..... (les champs surchargés au niveau du @Embeded)

    Si quelqu'un maitrise les composants avec jointures je suis preneur,
    merci d'avance

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 82
    Par défaut
    Dure

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 82
    Par défaut
    Regarde la section sur les classes embarquées et l'utilisation de l'annotation @Embeddable

    http://www.dil.univ-mrs.fr/~massat/ens/jee/tp-JPA.html


  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 82

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 142
    Par défaut
    Merci pour ton aide, je réponds tard mai j'ai beacoup creusé sur le sujet depuis

    Avec le embeddable j'ai pas réussi, j'ai toujours le même problème de non chargement de mon adresse.
    même en m'appuyant sur tes exemples + ceux que j'ai trouvé.

    Par contre je l'ai fait avec un classic set<Adresse> que j'ai mis dans personne, a ce moment personne est reponsable de la persistance de Adresse
    (lazy = false)

    En faisant de cette façon un personne pourra avoir plusieurs adresses c'est le seul avantage que je vois par rapport au @embedded

    Merci pour l'aide en tous cas.

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

Discussions similaires

  1. requete avec jointure & group by
    Par de LANFRANCHI dans le forum Langage SQL
    Réponses: 9
    Dernier message: 27/07/2004, 14h31
  2. Mise à jour avec jointure
    Par taupain dans le forum Bases de données
    Réponses: 5
    Dernier message: 09/07/2004, 11h27
  3. Mise à jour de table impossible après requête avec jointure
    Par sto dans le forum Bases de données
    Réponses: 5
    Dernier message: 17/03/2004, 13h24
  4. Script avec JOINTURE et CASE
    Par Labienus dans le forum Langage SQL
    Réponses: 6
    Dernier message: 27/02/2004, 09h40
  5. problème de requête avec jointures
    Par tinhat dans le forum Requêtes
    Réponses: 7
    Dernier message: 11/08/2003, 10h33

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