Mapping avec JPA


De UML à SQL : Présentation

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.

 Introduction

JPA   permet de définir des classes persistantes dans une base de données relationnelle en n’imposant l’utilisation que d’un nombre limité d’annotations. Le mapping s’effectuant avec des règles par défaut. Pourtant, si nous désirons d’un coté, avoir des classes correspondant à une modélisation objet utilisant des notions qui lui sont propres comme l’héritage et de l’autre, une base de données relationnelle normalisée, vous devrez connaître un certain nombre d’annotations supplémentaires.

La série d’articles intitulée De UML à SQL   a pour but de vous fournir un résumé des différentes annotations indispensables pour réaliser un mapping correct.

 Présentation des exemples

Pour que les exemples soient le plus clair possibles, les noms des classes et des attributs d’un coté et des tables et des champs de l’autre, se baseront sur un même formalisme tout au long de la série d’articles. Tous les exemples seront basés sur des classes ayant comme attributs uniquement un identifiant numérique et un attribut remarque de type String. Cela vous permettra de visualiser facilement les classes et attributs supplémentaires qui devront être ajoutés pour gérer les différentes relations.

La classe de base correspondra au diagramme UML suivant :

Le code Java correspondant :

  1. @Table( name = "T_TABLE_A")
  2. public class ClasseA implements Serializable
  3. {
  4.   @Id
  5.   @GeneratedValue( strategy = GenerationType.IDENTITY )
  6.   @Column( name = "A_ID" )
  7.   private Long id;
  8.  
  9.   @Column( name = "A_REMARQUE")
  10.   private String remarque;
  11.   //--- getters, setters ...

Télécharger

Remarque : J’ai volontairement choisi une génération de type IDENTITY et non pas AUTO,ce qui permet, avec MySQL de disposer d’une génération automatique de la clé primaire sans qu’une table SEQUENCE ne soit créée pour que seules apparaissent les tables correspondant au mapping, toujours dans un soucis de clarté des exemples.

Ce qui correspondra à la table suivante :

 Environnement utilisé pour réaliser les tests

L’ensemble des tables présentées dans ces exemples ont été générées en utilisant EclipseLink et une base de données MySQL, la version de JPA   étant la 2.1.

Article n° 46

Crée par: chris

Créé le: 19 septembre 2015

Modifié le: 18 septembre 2015

Nombre de visites: 526

Popularité: 11 %

Popularité absolue: 1

Mots clés de cet article


SPIP

2003-2024 LePpf
Plan du site | | RSS 2.0 | Sur YouTube

Visiteurs connectés : 14

Nombre moyen de visites quotidiennes sur le site: 215