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 :

Relation Many to many porteuse de donnée


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 63
    Par défaut Relation Many to many porteuse de donnée
    Bonjour,
    Voila dans le cadre d'un projet j'utilise hibernate afin de mapper mes classes Java aux table MySQL que j'ai crée.
    Tout fonctionne correctement cependant je ne vois pas comment mappé cette relation :



    La relation Done de type many to many (0,n 0,n et porteuse de données) créée donc une table entre les tables user et exercise. Auriez-vous un exemple avec les Annotations pour gérer ce cas car je ne trouve pas aucune info sur le net.
    Merci

  2. #2
    Membre Expert

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Par défaut
    Si tu veux récupérer la valeur portée, il va devoir avoir une une classe d'association.
    Au niveau de la clé primaire composée tu as deux choix avec deux annotations différentes :
    @IdClass
    @EmbeddedId

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 63
    Par défaut
    Merci beaucoup pour ta réponse. Je regarde sur pas mal de forum et je ne trouvais pas grand chose. Aurais-tu un exemple pour mon cas? apparemment avec IdClass il faut créer une table java supplémentaire pour les clés primaires? je préférerai alors la méthode embeded qui a l'air plus simple d'utilisation pour la suite.

    Edit : Dans mon cas j'ai bien une table DONE_USER_EXERCISE dans ma bdd MySQL qui est la table contenant :
    LOGIN_USER
    ID_EXERCISE
    SCORE
    DATE

  4. #4
    Membre Expert

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Par défaut
    Non le résultat sera le même, la différence c'est qu'avec @IdClass tous les composants de la PK seront présents de l'entity.
    Alors qu'avec @EnbededId l'entity aura déclaré une référence qui agrègera les compostants de la pk.

    Sur la base de données il n'y a aucune différence.

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 63
    Par défaut
    Ok d'accord je l'avais pas compris comme cela. Mais par la suite dans l'utilisation je ne vois qu'elle classe je vais utiliser. Aurais-tu un exemple pour le mappage dans mon cas? Merci encore pour ta disponibilité

  6. #6
    Membre Expert

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Par défaut
    Ca devrait donner quelque chose comme ca :

    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
    class DonePK {
        private Excercice excercice;
        private User user;
    }
     
    @Entity
    @IdClass(DonePK.class)
    class Done {
        @Id
        @OneToOne
        private Excercice excercice;
     
        @Id
        @OneToOne
        private User user;
     
        private Date date;
        private Integer Score;
    }
    A tester
    Dans le pire tu pourra t'en sortir en violant un peu merise avec une surrogate key.

Discussions similaires

  1. PGSQL-EclipseLink Relation One To Many et Many To One
    Par faitor1 dans le forum Persistance des données
    Réponses: 0
    Dernier message: 30/01/2015, 19h46
  2. Un peu de mal a comprendre le concepte "one-to-many" et "many-to-many"
    Par chriscoolletoubibe dans le forum Hibernate
    Réponses: 4
    Dernier message: 29/03/2007, 18h50
  3. Réponses: 3
    Dernier message: 26/02/2007, 10h14
  4. [hibernate]relation many-to-many
    Par quilo dans le forum Hibernate
    Réponses: 5
    Dernier message: 20/12/2005, 10h07
  5. [EJB2.1 Entity] [CMR] Relation One to Many
    Par hamed dans le forum Java EE
    Réponses: 2
    Dernier message: 31/12/2003, 14h26

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