Précédent   Forum des professionnels en informatique > Java > Général Java > Persistance > JPA
JPA Forum d'entraide sur l'API de persistance JPA (Java Persistence API)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/01/2012, 09h56   #1
Invité de passage
 
hakim ayadi
Inscription : juillet 2010
Messages : 1
Détails du profil
Informations personnelles :
Nom : hakim ayadi

Informations forums :
Inscription : juillet 2010
Messages : 1
Points : 0
Points : 0
Par défaut Héritage et relation entre les classes filles

bonjour ;
j'ai deux entité qui hérite d'une autre, et j'ai une relation entre les deux classes filles. je veut générer la base a partir de JPA, il génére les tables mais les clés étrangère pointe vers la table mère.
h_ayadi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2012, 09h17   #2
Expert Confirmé
 
Homme
Ingénieur développement logiciels
Inscription : juin 2007
Messages : 2 258
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 258
Points : 2 578
Points : 2 578
Quelle strategie d'heritage as tu implémentée? Peux ton voir les codes de tes classes?
DevServlet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 18h30   #3
Membre du Club
 
Inscription : avril 2010
Messages : 65
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 65
Points : 41
Points : 41
Juste pour voir si j'ai bien compris, JPA créé une association récursive au niveau de l'entité mère alors que tu demandes une association entre les deux entités filles ?
dr-Padbol est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 20h02   #4
Expert Confirmé
 
Homme
Inscription : septembre 2006
Messages : 2 291
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : septembre 2006
Messages : 2 291
Points : 2 738
Points : 2 738
La foreign key référence toujours la table principale sous-jacente à l'entité cible dans la relation annotée par JPA.
(en stratégie JOIN, cette table principale est la feuille de l'arbre ISA)

Si vous avez donc :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
@Entity
@Inheritance(strategy = InheritanceType.THE_STRATEGY_YOU_CHOSE)
class EntityMother {}
 
@Entity 
class EntityDaugther1 extends EntityMother {
@OneToOne
EntityDaugther2 hasSister ;}
 
 
@Entity
class EntityDaugther2 extends EntityMother {}
la FK qui sera générée pour exprimer la relation hasSister pointera vers la table générée pour EntityDaugther2, cette table ne sera la même que celle de l'entité Mother que si la stratégie d'inhéritance choisie est SINGLE_TABLE.

MAIS si vous avez écrit :
Code :
1
2
3
4
5
6
7
8
 
 
@Entity 
class EntityDaugther1 extends EntityMother {
@OneToOne
Mother hasSister ;}
parce que hasSister peut aussi bien être une EntityDaugther2 qu'une EntityDaugther2, alors évidemment la FK sera sur la table sous-jacente à l'entité Mother.

Notez que ce dernier cas ne peut fonctionner en TABLE_PER_CLASS : dans le modèle relationnel, les FK ne sont pas polymorphes : la contrainte FK ne sera tout simplement pas générée.
JeitEmgie est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h38.


 
 
 
 
Partenaires

Hébergement Web