Premiers pas avec Eclipse et JPA

Ce tutorial a pour objet de présenter la configuration de base d'un projet JPA dans Eclipse, et de créer une première entité JPA. Il utilise une connexion Derby de type embedded, et EclipseLink comme implémentation JPA.

1. Création d'une connexion Derby

Un projet JPA a besoin de se connecter à une base de données. Nous avons déjà présenté une façon de créer une connexion à une base Derby dans le tutorial Premiers avec Derby dans Eclipse, et nous en présentons une autre ici. On peut donc utiliser soit l'une soit l'autre.

Une connexion de type embedded est différente d'une connexion classique. La première étape est la même que pour toutes les connexions : sélectionner la rubrique New... du menu contextuel de la vue Data Source Explorer.

Création d'une nouvelle connexion à une base

Figure 1. Création d'une nouvelle connexion à une base


On sélectionne le type de base de données : Derby dans le panneau qui s'ouvre.

Sélection du type de serveur de base : Derby

Figure 2. Sélection du type de serveur de base : Derby


Ces deux premières étapes étaient les mêmes que pour la création d'une connexion classique à une base Derby. C'est à cette troisième étape que les différences commencent. Sur le panneau suivant, on sélectionne le pilote Derby Embedded JDBC Driver. Les fichiers de la base de données sont alors stockées dans un endroit que l'on peut choisir, qui va influencer l'URL de la base. Dans ce panneau, il nous faut donc choisir donc un emplacement de fichiers.

Paramétrage de la base Derby embedded

Figure 3. Paramétrage de la base Derby embedded


Le dernier panneau est juste un rappel des paramètres que nous avons entrés.

Rappel du paramétrage de la base

Figure 4. Rappel du paramétrage de la base


Notre nouvelle connexion apparaît enfin dans la vue Data Source Explorer, comme n'importe quelle autre connexion.

Nouvelle connexion dans la vue Data Source Explorer

Figure 5. Nouvelle connexion dans la vue Data Source Explorer


Cette source de données est prête à être utilisée dans le projet JPA que nous allons créer maintenant.

2. Création d'un projet JPA

La création d'un projet JPA commence de la même manière que n'importe quel autre projet Eclipse. Le panneau New Project permet de sélectionner JPA Project.

Sélection de JPA Project dans le panneau de création d'un projet

Figure 6. Sélection de JPA Project dans le panneau de création d'un projet


S'ouvre alors un deuxième panneau qui permet de préciser les choses.

  • Le nom de ce projet et la version de Java utilisée.

  • La version de l'API JPA utilisée. Ici on sélectionne JPA 2.0.

  • Enfin, il est possible d'ajouter ce projet à un EAR, point que nous ne couvrons pas dans ce pas à pas.

Paramètrage d'un projet JPA

Figure 7. Paramètrage d'un projet JPA


L'étape suivant permet de préciser les répertoires source de notre projet.

Sélection des répertoires source d'un projet JPA

Figure 8. Sélection des répertoires source d'un projet JPA


Enfin, il faut encore sélectionner l'implémentation JPA que notre projet va utiliser. Il s'agira typiquement d'Hibernate ou d'Eclipselink, cette dernière implémentation étant l'implémentation de référence.

Choix de l'implémentation utilisée

Figure 9. Choix de l'implémentation utilisée


L'implémentation choisie pour notre exemple est EclipseLink 2.3.x, qui n'est pas installée dans les dépendances de notre projet. Pour ce faire, il faut cliquer sur l'icône en forme de disquette à droite dans le cadre JPA implementation.

Ce panneau nous permet de choisir également la base de données utilisée. On sélectionne ici Derby Embedded, connexion que nous venons de créer. Il est alors possible de définir ici un autre jeu de paramètres que celui utilisé par cette connexion, notamment le schéma cible de l'application.

Enfin, on peut choisir de laisser EclipseLink découvrir les entités JPA de notre projet, ou de les lister dans le fichier persistence.xml. C'est cette deuxième option que l'on choisit ici.

Avant de terminer, Eclipse nous propose de télécharger la librairie EclipseLink 2.3. Ce téléchargement se fait en trois temps.

Téléchargement d'EclipseLink 2.3

Figure 10. Téléchargement d'EclipseLink 2.3


Téléchargement d'EclipseLink 2.3 : licence d'exploitation

Figure 11. Téléchargement d'EclipseLink 2.3 : licence d'exploitation


Téléchargement d'EclipseLink 2.3 : téléchargement

Figure 12. Téléchargement d'EclipseLink 2.3 : téléchargement


Une fois ce téléchargement terminé, notre projet est prêt à être créé.

Fin de la création

Figure 13. Fin de la création


Eclipse nous propose alors de basculer sur la perspective JPA, ce que l'on accepte.

Perspective JPA

Figure 14. Perspective JPA


La structure de notre projet est la suivante, visible dans la vue Project Explorer.

Structure d'un projet JPA

Figure 15. Structure d'un projet JPA


Notre projet est maintenant prêt à accueillir nos premières entités.

3. Création d'une entité JPA

On se propose dans cette partie de créer une première entité JPA. En première approche, une entité JPA est un bean Java classique, annoté, et qui doit posséder une clé primaire. On peut générer de telles classes automatiquement avec les outils fournis par Eclipse.

On commence la création d'une entité JPA en sélectionnant la rubrique JPA Entity sous l'icône New Entity. Attention, cette frise d'icônes n'est visible, par défaut, que sur la perspective JPA.

Création d'une entité JPA

Figure 16. Création d'une entité JPA


Le premier panneau qui s'ouvre alors nous permet de fixer la classe de notre entité, et éventuellement sa super-classe. Si elle possède une super-classe, alors on peut préciser le type de stratégie pour le mapping de l'héritage.

Création d'une entité JPA : définition de la classe

Figure 17. Création d'une entité JPA : définition de la classe


Le deuxième panneau permet de fixer trois choses.

  • Le nom de l'entité JPA que l'on est en train de créer. Par défaut il s'agit du nom complet de la classe. Si ce nom doit être utilisé dans des requêtes JPQL, il est souvent utile d'en choisir un plus simple.

  • Le nom de la table associée à cette entité.

  • La liste des champs persistants de cette classe, c'est-à-dire ceux qui sont associés à des colonnes de la table dans laquelle sera enregistrée cette entité.

On peut également fixer la façon dont cette classe sera annotée : pas ses champs ou ses getters.

Création d'une entité JPA : paramétrage de la classe

Figure 18. Création d'une entité JPA : paramétrage de la classe


En cliquant sur le bouton Finish, Eclipse crée notre classe, telle qu'elle a été paramétrée.

Cela dit, les choses ne sont pas tout à fait finies. Effectivement, Eclipse vérifie automatiquement que notre entité est valide, et, notamment, que sa table associée existe bien.

Entité JPA créée : vérification de la table

Figure 19. Entité JPA créée : vérification de la table


Nous sommes partis d'un exemple vide, donc cette table n'existe pas. Il serait facile de la créer manuellement, mais Eclipse nous propose de le faire pour nous. Il faut pour cela aller chercher la rubrique JPA Tools du menu contextuel de notre projet JPA. Cette rubrique possède une sous-rubrique Generate Tables From Entities..., qui va nous faire le travail.

Création automatique de la table

Figure 20. Création automatique de la table


Là encore Eclipse nous demande si l'on veut créer nos tables en base directement, ou créer un fichier de commandes SQL à exécuter, sans toucher à la base.

Choix de la stratégie de création

Figure 21. Choix de la stratégie de création


Dans notre exemple on choisit de créer directement les tables en base, ce qu'Eclipse va nous faire.

Création automatique des tables en base

Figure 22. Création automatique des tables en base


Eclipse JPA
Retour au blog Java le soir
Cours & Tutoriaux