Article faisant partie d’une série présentant les différentes annotations permettant de traduire des relations entre classes persistantes en bases de données relationnelles.
Nous allons voir maintenant une relation OneToMany unidirectionnelle entre une classe F et une classe G. Le lien ce fera de F vers G.
Diagramme de classes
Code Java
Code de la classe F :
Nous pouvons accéder à une liste d’éléments de type G à partir d’un objet F. L’annotation @JoinColumn permet de spécifier le champ F_ID_FK comme nom du champ clé étrangère dans la table T_TABLE_G.
Code de la classe G :
Comme la relation est unidirectionnelle de de F vers G, ClasseG n’a pas d’attribut de type F.
Les tables correspondantes
Table correspondant à la classe F :
Table correspondant à la table G :
Nous voyons que la table G a bien une clé étrangère permettant de faire le lien avec la table F.
Et voici le script SQL permettant de générer les tables :
Script de la table F :
Script de la table G :
Nous remarquons que nous acceptons que la clé étrangère puisse être nulle, c’est à dire, que nous autorisons qu’une instance de G ne soit pas forcément reliée à une instance de F. Si nous voulons forcer le lien, nous devons le spécifier dans dans le code de la classe F comme suit :
La génération des tables ne va modifier que la structure de la table G dont le champ F_ID_FK à maintenenant la propriété NOT NULL
Le script correspondant :
Crée par: chris
Créé le: 19 septembre 2015
Modifié le: 19 septembre 2015
Nombre de visites: 2789
Popularité: 88 %
Popularité absolue: 4
2003-2023 LePpf
Plan du site
| Se connecter |
Contact |
RSS 2.0 |
Sur YouTube
Visiteurs connectés : 0
Nombre moyen de visites quotidiennes sur le site: 182