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 :

Explications classe persistence et héritage


Sujet :

JPA Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 231
    Points : 75
    Points
    75
    Par défaut Explications classe persistence et héritage
    Bonjour,

    Imaginons j'ai une Clients (définit comme entity bean) qui hérite de la classe PersonneMorale (définit aussi comme Entity Bean).
    Considérons, une base de donnée où les informations du clients et de la personne morale sont dans une meme table.
    La question est:

    Dois je mettre les attributs embedded sur la classe mèreet embeddable sur la classe fille?

    Dois je modifier ma base pour créer deux tables?

    Autre question:

    Considérons que j'ai une classe Personne et une classe adresse Egalement une classe PersonnePhysique héritant de Personne. Il y a une association avec comme cardinalité 1 entre Personne et adresse.
    Dois je crée une table adresse et une classe Personnne dans ma bdd?
    Ou pareil je dois regrouper les infos de adresse et de personne dans une table avec les informations de PersonnePhysique?

    Merci pour votre aide.

  2. #2
    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
    Citation Envoyé par skyangel Voir le message
    Dois je mettre les attributs embedded sur la classe mèreet embeddable sur la classe fille?
    non.
    Dois je modifier ma base pour créer deux tables?
    non ce n'est pas une obligation.
    Il faut juste mention comme strategie d'héritage :
    InheritanceType.SINGLE_TABLE
    Considérons que j'ai une classe Personne et une classe adresse Egalement une classe PersonnePhysique héritant de Personne. Il y a une association avec comme cardinalité 1 entre Personne et adresse.
    Dois je crée une table adresse et une classe Personnne dans ma bdd?
    Ou pareil je dois regrouper les infos de adresse et de personne dans une table avec les informations de PersonnePhysique?
    Comme tu veux mais si l'adresse n'est pas obligatoire pour une personne il est vivement conseillé de faire une classe (donc une table) Adresse à part

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 231
    Points : 75
    Points
    75
    Par défaut
    OK pour la strategie. Où dois je la mentionner?

    Autre question, l annotation @MappedSuperclass ne doit elle pas jouer un role aussi?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment hériter de deux classes ? (que signifie héritage multiple ?)
    Par adil_vpb dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 23/10/2007, 19h27
  2. Réponses: 17
    Dernier message: 27/08/2007, 18h35
  3. Foncteur, classes templates et héritage
    Par Floréal dans le forum C++
    Réponses: 8
    Dernier message: 17/06/2007, 21h56
  4. Demande explications classes interfaces
    Par schnito dans le forum Langage
    Réponses: 17
    Dernier message: 10/10/2006, 04h44
  5. [Language] Explications classe définie dans une classe
    Par etiennegaloup dans le forum Langage
    Réponses: 6
    Dernier message: 13/09/2005, 22h15

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