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

JPA Java Discussion :

Relation dans une même table


Sujet :

JPA Java

  1. #1
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 149
    Points : 43
    Points
    43
    Par défaut Relation dans une même table
    Bonjour,
    Je souhaiterai savoir si il est possible d'avoir une relation avec une mpême table.

    Exemple: une table logement.

    Un immeuble est un logement et il contient plusieurs appartements qui sont eux meme des logements

    Je souhaite en base avoir une unique table LOGEMENT

    Comment créer la table en SQL pour pouvoir générer un code java propre avec hibernate tools?

    Merci

  2. #2
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    311
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 311
    Points : 318
    Points
    318
    Par défaut
    Citation Envoyé par Ylias Voir le message
    Bonjour,
    Je souhaiterai savoir si il est possible d'avoir une relation avec une mpême table.

    Exemple: une table logement.

    Un immeuble est un logement et il contient plusieurs appartements qui sont eux meme des logements

    Je souhaite en base avoir une unique table LOGEMENT

    Comment créer la table en SQL pour pouvoir générer un code java propre avec hibernate tools?

    Merci
    Il me semble, si je me rappelles mes vieux cours d'analyse, qu'il s'agit de la notion de roles... Ensuite, au niveau implémentation, j'imagine que ça se traduit par un champ qui stocke l'identifiant unique de son "père" (chaque appart a comme clé étrangère la clé primaire de l'immeuble)

  3. #3
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 149
    Points : 43
    Points
    43
    Par défaut
    Oui mais je voudrais que appart et immeuble soit une meme entité en bdd.

    De plus, un appart peut ne pas être dans un immeuble et un immeuble peut contenir plusieurs appart.

    J'insiste sur le fait que appart & immeuble doivent être même entité en bdd.

    Merci

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 156
    Points : 191
    Points
    191
    Par défaut
    Déjà vu que tu utilises un ORM tu devrais davantage penser objet que BD.
    Ton modèle est un peu bancal.
    Je pense que tu devrais avoir une classe abstraite Logement, et 2 classes héritant de cette classe abstraite Appartement et Immeuble.
    Dans le cas d'Immeuble t'auras donc un relation avec Appartement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    class Appartement extends Logement {
    }
     
    class Immeuble extends Logement { 
    ....
    @ManyToOne
    private List<Appartement> appartements;
    ..
    }
    Ensuite dans ta stratégie de mapping de ton héritage tu peux spécifier de mapper tout cette hierarchie de Logement dans la même table.

  5. #5
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 149
    Points : 43
    Points
    43
    Par défaut
    Merci pour ta réponse phantomass.

    Donc d'après ta derniere phrase si j'ai bien compris les appart et les immeubles seraient stockés en base dans la meme table?

    Si c'est le cas, comment spécifier à JPA que c'est la meme table pour appart et immeuble?

    Merci

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 156
    Points : 191
    Points
    191
    Par défaut
    Je t'invite à lire la partie héritage de la documentation JPA.

    un bout de la réponse :
    @Inheritance(type=SINGLE_TABLE)

Discussions similaires

  1. Copier un enregistrement dans une même table
    Par slammer dans le forum Langage SQL
    Réponses: 11
    Dernier message: 04/05/2010, 23h17
  2. Double comptage dans une même table
    Par Patoune dans le forum Langage SQL
    Réponses: 5
    Dernier message: 22/03/2007, 17h49
  3. Nls_lang : deux codage dans une même table
    Par Oraman dans le forum Oracle
    Réponses: 6
    Dernier message: 22/08/2006, 12h36
  4. [Requête] plusieurs champs dans une même table ayants la même source
    Par Christophe93250 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 25/04/2006, 16h18
  5. [SQL] Somme de 2 colonnes dans une même table
    Par Cyrilange dans le forum Langage SQL
    Réponses: 6
    Dernier message: 11/04/2005, 08h32

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