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 :

[Hibernate] Mapper une association


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
    Avril 2010
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2010
    Messages : 129
    Par défaut [Hibernate] Mapper une association
    Bonjour,

    Je suis débutant sur Hibernate, et là je suis coincé sur un mappage d'une association. Voilà mes 3 tables :
    Joueur(idjoueur, nom,...)
    Participe(idjoueur, idjeu, points)
    Jeu(idjeu, libelle,...)

    Entre Joueur et Jeu, j'ai compris qu'il fallait faire MANY-TO-MANY.
    Donc dans la class Joueur ( Une liste d'objets Jeu), et dans la classe Jeu (Une liste d'objets Joueur).

    Mais pour Participe, comment récupérer les points (ceux de Participe) dans mes classes ?

    Enfin je suis perdu, je ne vois pas comment récupérer cela.

    Merci pour votre aide,

  2. #2
    Membre expérimenté Avatar de mOuLi
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2008
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2008
    Messages : 170
    Par défaut
    Bonjour,

    Tu devrais regarder dans la doc de référence d'Hibernate2. A la fin du document, il y a justement un cas similaire de mapping avec les entités Order / LineItem / Product.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2010
    Messages : 129
    Par défaut
    Citation Envoyé par mOuLi Voir le message
    Bonjour,

    Tu devrais regarder dans la doc de référence d'Hibernate2. A la fin du document, il y a justement un cas similaire de mapping avec les entités Order / LineItem / Product.
    Merci pour ton aide, j'ai mappé le tout, sauf que pour la colonne POINTS, je n'ai pas réussi à la mapper. Elle se trouve dans la table Participe, et je n'ai pas de classe Participe !

    Je suis coincé

  4. #4
    Membre expérimenté Avatar de mOuLi
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2008
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2008
    Messages : 170
    Par défaut
    Effectivement, l'exemple de mapping que je t'ai indiqué ne définit pas une relation many2many puisque (de base) ce type d'association correspond à une relation N/N avec table d'association sans info supplémentaire.

    Donc en transposant l'exemple de la doc de référence avec tes entités, tu aurais besoin de 3 classes :

    • Joueur et Jeu (évidemment)
    • Participe qui contiendra la propriété d'association (points) et un lien vers une instance de Jeu.

    Dans ta classe Joueur, tu auras une liste d'éléments de type Participe en utilisant dans ton mapping une liste de "composite-element" à l'intérieur duquel tu as une association de type many-to-one vers la classe Jeu.

    J'espère que tu vois ce que je veux dire

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2010
    Messages : 129
    Par défaut
    Citation Envoyé par mOuLi Voir le message
    Effectivement, l'exemple de mapping que je t'ai indiqué ne définit pas une relation many2many puisque (de base) ce type d'association correspond à une relation N/N avec table d'association sans info supplémentaire.

    Donc en transposant l'exemple de la doc de référence avec tes entités, tu aurais besoin de 3 classes :

    • Joueur et Jeu (évidemment)
    • Participe qui contiendra la propriété d'association (points) et un lien vers une instance de Jeu.

    Dans ta classe Joueur, tu auras une liste d'éléments de type Participe en utilisant dans ton mapping une liste de "composite-element" à l'intérieur duquel tu as une association de type many-to-one vers la classe Jeu.

    J'espère que tu vois ce que je veux dire

    Merci beaucoup, je vois ce que tu veux dire en général.

    Le "composite-element" est dans le mapping de Joueur ou Participe ?

    Désolé si c'est une question bête.

  6. #6
    Membre expérimenté Avatar de mOuLi
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2008
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2008
    Messages : 170
    Par défaut
    Je te rassure, ça n'est absolument pas une question bête

    Je pense qu'il faudrait tourner la question en "comment est-ce que je vais manipuler ces informations dans mon modèle objet ?". Ce point regroupe tout ce qui est correspondance des types Java/SQL, visibilité des associations (unidirectionnelle ou bidirectionnelle ?) ... Le plus simple avec Hibernate (à mon avis) est de partir d'un modèle objet pour en déduire le modèle relationnel. Dans ton cas, c'est l'inverse (tu déduis ton modèle objet à partir d'un schéma relationnel existant) et donc tu vas devoir te poser la question si c'est l'entité Joueur ou Jeu qui aura la visibilité sur le score (via la classe Participe) ?

    Si je reprends l'exemple du mapping Order/LineItem/Product de la doc de référence Hibernate2. Le choix de visibilité est Order voit une liste de LineItem et chaque LineItem voit Product. Je pense qu'il serait possible de faire l'inverse (c-a-d Product voit une liste de LineItem et chaque LineItem voit Order) tout en conservant le même modèle relationnel.

    Donc à toi de juger quel est le sens qui répondra le mieux à tes besoins de traitement côté Java

Discussions similaires

  1. [Hibernate] Mapper une association (MCD)
    Par seanbean dans le forum Persistance des données
    Réponses: 0
    Dernier message: 12/04/2012, 13h41
  2. [Hibernate] Mapper une table sans clé primaire
    Par neuromencien dans le forum Hibernate
    Réponses: 4
    Dernier message: 13/06/2006, 17h05
  3. Réponses: 3
    Dernier message: 08/06/2006, 17h38
  4. [Hibernate] Mapper une classe association
    Par mauvais_karma dans le forum Hibernate
    Réponses: 16
    Dernier message: 25/01/2006, 12h34
  5. Réponses: 10
    Dernier message: 10/01/2006, 14h14

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