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] Jointure Hibernate avec une table de correspondance


Sujet :

Hibernate Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut [Jointure] Jointure Hibernate avec une table de correspondance
    Bonjour,

    J'ai une table CD qui contient les colonnes suivantes:
    ID_CD
    TITLE
    SINGER
    FK_TYPE


    FK_TYPE est une clé étrangère pointant sur la PK de la table CD_TYPE qui contient les colonnes suivantes:
    ID_TYPE
    TYPE

    Dans le modèle objet Java de mon application, j'ai une classe CD qui contient les attributs suivants
    ID_CD
    TITLE
    SINGER
    TYPE

    On remarque que type (String) n'est pas directement obtenu par la table CD, mais par la jointure avec la table CD_TYPE par la clé étrangère FK_TYPE.

    Comment puis-je configurer ce mapping avec les annotations JPA/Hibernate ?
    Dois-je utiliser @SecondaryTable ? Où faire cette déclaration ? Au niveau de la classe ? Au niveau de l'attribut TYPE ?

    Merci beaucoup de votre aide,

    Jean

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 548
    Points : 635
    Points
    635
    Par défaut
    c'est une many to one plutôt

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Hello,

    Merci pour la réponse.
    En réalité, ce qui m'embête c'est que je n'ai pas d'objets CD_TYPE dans mon modèle métier Java.

    CD_TYPE est pour moi, une simple table en base dont je me sert pour rechercher le TYPE du CD.

    Il me semble donc que je dois décrire tout de même cette table avec la jointure, la clé primaire, etc, nan ?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 548
    Points : 635
    Points
    635
    Par défaut
    Modélise le plutôt comme une classe à part, quitte à ajouter une méthode getTypeName() dans ta classe CD

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Quelle est justement la meilleure pratique dans le cas d'un mapping de base legacy ?

    Faire autant d'objet que de tables, ou proposer une abstraction du modele physique dans des objets java métier avec données agrégées ?

  6. #6
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 23
    Points : 30
    Points
    30
    Par défaut
    Citation Envoyé par jvajva
    Faire autant d'objet que de tables, ou proposer une abstraction du modele physique dans des objets java métier avec données agrégées ?
    oui ! mais je ne dirais pas "ou" mais plutot "et" ! de toute façon, il est plus propre de travailler sur des objets métiers que sur des objets relationnels !

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 548
    Points : 635
    Points
    635
    Par défaut
    Ben en l'occurence je dirais que "Type" est une entité à part, en plus ça te permet de rajouter l'attribut CDs à Type, et donc de récupérer facilement tous les CDs du Type en question (un simple getCds() !)

Discussions similaires

  1. Réponses: 3
    Dernier message: 29/10/2007, 14h04
  2. Réponses: 1
    Dernier message: 18/07/2007, 12h58
  3. Attribuer un ordre avec une table de jointure.
    Par hackiles dans le forum Ruby on Rails
    Réponses: 14
    Dernier message: 09/06/2007, 15h27
  4. Requete avec une table de correspondance.
    Par gregb34 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 19/02/2007, 19h53
  5. Réponses: 1
    Dernier message: 18/01/2006, 18h51

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