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 :

[Mapping] Un bean, 2 tables


Sujet :

Hibernate Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2005
    Messages : 48
    Points : 39
    Points
    39
    Par défaut [Mapping] Un bean, 2 tables
    Bonjour à tous,

    J'ai définit mon bean persistant suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public maClasse {
       private String att1;
       private String att2;
     
    //getters et setters
    }
    Je voudrais mappé cet objet en deux tables dans ma base, et les lié par une relation 0..n. Soit dans une table je retrouve mon att1, avec une clé étrangère lié à ma deuxieme table contenant att2.
    En fait pour l'instant, tous mes attributs sont à plat dans ma table. J'aimerai regrouper certain attributs qui sont commun à un grand nombre de mes enregistrements dans une table, pour pas qu'ils soient répétés à chaque enregistrement dans ma table.
    On peut voir ça un peu comme de l'héritage, mais dans mon model objet... j'en vois pas trop l'intérêt, par contre dans mon modèle physique en base j'en vois plus l'intérêt.

    Qu'en pensez vous ? est-ce inutile de s'embêter ? est ce que c'est faisable ?

    Merci d'avance
    Arnaud

  2. #2
    Nouveau membre du Club
    Inscrit en
    Février 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2005
    Messages : 48
    Points : 39
    Points
    39
    Par défaut
    Une idée ??

    Est ce que je vais être obliger de créer deux objets, par exemple, j'ai un objet qui représente une voiture

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public class Voiture {
    Long id;
    String nom;
    EnumTypeVoiture type;
    Usine usine;
    //Getter - Setter
     
     
    }
    Admettons que EnumTypeVoiture est une énumération contenant :BERLINE,BREAK,4X4... et que Usine est un objet qui me permet de déterminer dans quelle usine est fabriqué la voiture.

    en bdd, je vais retrouver

    1 | 306 | BERLINE | 1(clé étrangère de la table Usine)
    2 | 206 | BERLINE | 1
    3 | 106 | BERLINE | 1
    4 | 306 | BREAK | 1
    etc ...

    On peut voir dans cet exemple que certaines données peuvent être factorisé, et pourrait être transformer en :
    1ere table :
    1 | BERLINE | 1 (clé étrangère de usine)
    2 | BREAK | 1

    2eme table
    1 | 306 | 1(clé étrangère permettant de retouver le type et l'usine)
    2 | 206 | 1
    3 | 306 | 2

    Voila voila, c'est peut etre un peu plus clair, une de mes questions est, si j'ai un besoin de ce genre, est ce que ça veut dire que ma modélisation objet est à revoir...

    Merci d'avance
    Arnaud

  3. #3
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Ton premier mapping me semble correct.
    Je ne vois pas l'intérêt de ta factorisation qui n'en est pas vraiment une au final.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Février 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2005
    Messages : 48
    Points : 39
    Points
    39
    Par défaut
    Salut,

    Merci pour ta réponse, c'est ma chef qui m'a demandé de faire ça... mais c'est vrai que peut etre il n'y a pas vraiment de gain... est ce réalisable au moins ???

    Merci !
    Arno

  5. #5
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Oui c'est faisable.
    En gros, tu vas avoir un objet voiture, un objet type et un objet usine auquels correspondront 3 tables.
    Tu pourras faire un taVoiture.getType().getUsine() pour récupérer ton usine.

    Si c'est correct au niveau modélisation pour toi, alors pourquoi pas.
    On peut noter un inconvénient, c'est que tu vas avoir une table de plus donc une jointure de plus.

Discussions similaires

  1. [JDO] Annotations pour intégrer une relation 1-N par map dans sa join table
    Par Blustuff dans le forum Persistance des données
    Réponses: 0
    Dernier message: 31/01/2009, 13h33
  2. Entity Bean vers table
    Par Mister Nono dans le forum JPA
    Réponses: 5
    Dernier message: 15/10/2008, 13h29
  3. Hibernate Mapping sur une même table
    Par bubule22 dans le forum Hibernate
    Réponses: 2
    Dernier message: 26/09/2008, 17h24
  4. Réponses: 7
    Dernier message: 13/05/2008, 11h26
  5. Mapping complet d'une table
    Par benInfo dans le forum Hibernate
    Réponses: 1
    Dernier message: 18/04/2008, 15h00

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