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 :

Liaison classique entre 2 entités


Sujet :

JPA Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2011
    Messages : 43
    Par défaut Liaison classique entre 2 entités
    Bonjour,

    Voilà mon problème, j'ai une table Personne et une table User. Dans la table User, il y a une clé étrangère qui référence la clé primaire de la table Personne.
    Comment reproduire ça au niveau des annotations sur les entités ?
    One-to-One ?

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Par défaut
    Si tu as une relation 1..1 oui.

    1 User => 1 Personne
    1 Personne => 1 User

  3. #3
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Citation Envoyé par zaitsev Voir le message
    Bonjour,

    Voilà mon problème, j'ai une table Personne et une table User. Dans la table User, il y a une clé étrangère qui référence la clé primaire de la table Personne.
    Comment reproduire ça au niveau des annotations sur les entités ?
    One-to-One ?
    Est ce que l'identifiant de User n'est pas tout le temps celui de Personne?Si oui niveau conceptuel j'aurais plutôt vu un héritage. Sinon est ce que pour une Personne tu as plusieurs User correspondants? dans ce cas Dans Personne tu ferais un OnetoMany vers User et un ManyToOne dans le sens User==>Personne.

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2011
    Messages : 43
    Par défaut
    Merci pour vos réponses ! j'ai pu faire marcher la solution de base (one-to-one)

    Deux questions me viennent :

    1/ Dans mon exemple, lorsque je regarde en base, j'ai bien une clé étrangère (user) qui est égale à la clé primaire de la table personne, mais quand je regarde la structure de la table user, je ne remarque pas de clé étrangère qui référent officiellement la table personne. En gros, ca correspond mais pour Mysql j'ai pas l'impression que c'est pas une clé étrangère : d'où peut venir ce manque ?

    2/ Dans le cadre de l'héritage, est-il possible que la table personne garde ses propriétés de "classe mère" et que la table user garde que ses propriétés de "classe fille" ?

    Merci d'avance.

  5. #5
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Citation Envoyé par zaitsev Voir le message
    1/ Dans mon exemple, lorsque je regarde en base, j'ai bien une clé étrangère (user) qui est égale à la clé primaire de la table personne, mais quand je regarde la structure de la table user, je ne remarque pas de clé étrangère qui référent officiellement la table personne. En gros, ca correspond mais pour Mysql j'ai pas l'impression que c'est pas une clé étrangère : d'où peut venir ce manque ?
    Ca me parait pas déraisonnable si tu me confirmes ce test. Peux tu éssayer d'ajouter un enregistrement dans la Table User dont l'identifiant ne serait pas présent dans la table Personne? Si c'est le cas la clé étrangère dans User qui référencerait Personne serait en réalité sa clé primaire
    Citation Envoyé par zaitsev Voir le message
    2/ Dans le cadre de l'héritage, est-il possible que la table personne garde ses propriétés de "classe mère" et que la table user garde que ses propriétés de "classe fille" ?
    Oui c'est possible, mais ma réponse va dépendre de la réponse de la question 1.

  6. #6
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2011
    Messages : 43
    Par défaut
    J'ai testé et la clé étrangère dans User est NULL. Je ne sais pas si c'est normal ou pas, je me demande juste :

    Est ce que Hibernate fait sa correspondance "dans son coin" ou bien il force la base de données a rajouté les contraintes d'intégrités, les clés étrangères, etc ?

  7. #7
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Citation Envoyé par zaitsev Voir le message
    J'ai testé et la clé étrangère dans User est NULL. Je ne sais pas si c'est normal ou pas, je me demande juste :
    Donc y'a pas de contrainte référentielle gérée automatiquement par ta bd.Elle doit être gérer programmatiquement je suppose?
    Citation Envoyé par zaitsev Voir le message
    Est ce que Hibernate fait sa correspondance "dans son coin" ou bien il force la base de données a rajouté les contraintes d'intégrités, les clés étrangères, etc ?
    Non non hibernate ne gère les contraintes que via le mapping, si tu ne mets pas de contraintes au niveau mapping il éssaiera d'aller écrire en BD et c'est ton SGBD qui le jettera si la contrainte est présente physiquement.

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/07/2014, 11h17
  2. [2.x] one-to-one? Liaison entre les entités
    Par dananchet dans le forum Symfony
    Réponses: 1
    Dernier message: 27/02/2014, 23h29
  3. Réponses: 13
    Dernier message: 22/08/2009, 15h53
  4. [XSL / XML] Conserver un espace entre deux entités
    Par alkolo dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 29/03/2006, 14h26
  5. [MCD] Associations entre trois entités
    Par wolflinger dans le forum Schéma
    Réponses: 5
    Dernier message: 21/03/2006, 14h49

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