Bonjour,
J’ai un collège qui a besoin de faire une relation 1 a plusieurs entre une entity Mettre (Famille d’évènement) et Esclave (Evènement)
Voici ce qu’a fait mon collège :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 @Entity @Table(name = "T_EVENT") public class EventCarrierePre implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; private String codeEventPre; private String libelleEvent; //Getter and Setter }
Le résultat en relationnel (d’après moi un résultat très cohérons)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 @Table(name="T_FAMILLE_EVENT") @Entity public class FamilleEventCar implements Serializable { private static final long serialVersionUID = 1L; @Id @Column(name = "codeFam") private String codeFam; private String libFam; @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY) @JoinColumn(name = "fam_id", referencedColumnName = "codeFam") private List<EventCarrierePre> eventCarPres; //Getter and Setter }
Mais d’après tous les tutoriaux que j’ai vu une relation 1 a plusieurs avec JPA crée une table de jointure entre les deux tables associées aux deux entités. Cette table de jointure porte une clé étrangère vers la clé primaire de la première table, et une clé étrangère vers la clé primaire de la deuxième table.
Le hique c’est que je n’arrive pas à justifier cette réaction de JPA que moi-même je ne trouve pas totalement correcte.
Il y a une phrase que je ne comprends pas dans un tutorial qui est la suivante :
Sa serais pas le contraire ? !!On peut ici se poser une question : pourquoi la spécification JPA prévoit-elle la création d'une table de jointure alors que la relation est de type 1:p ? La réponse est simple : parce qu'aucune information n'existe sur le champ retour, et que JPA n'a donc aucune information sur la colonne de jointure à utiliser dans la table destination. Dans le cas 1:p bidirectionnel, nous verrons que JPA ne crée pas cette table de jointure.
Merci de votre aide







Répondre avec citation





Partager