Formation JPA, conception et développement


Cette formation JPA : Conception et développement sur 3 jours a pour principal objectif de vous rendre opérationnel dans l'utilisation de la solution mapping objet/relationnel de Java. À terme, vous maîtriserez les mappings simples ou complexes ainsi que le langage EJB-QL afin d'être apte à formuler des requêtes objet optimisées.
JPA qu'est-ce que c'est ?
Java Persistence API offre une couche d'abstraction normalisée Oracle à des couches de persistance d'applications Java EE. Centrée sur la brique Hibernate, l'interface de programmation Java permet une généralisation du modèle POJO de persistance objets sur diverses interfaces et factories indépendantes provenant du provider sous-jacent en fonction dy pattern Factory. Quant à la brique JPA, elle forme le coeur du mapping des EJB Entity dans la nouvelle distribution de EJB3 Oracle.

Objectifs de cette formation

  • Savoir réaliser la couche de persistance à l'aide de JPA
  • Concevoir des mappages d'objets persistants
  • Être opérationnel en mappage pour des collections, relations et objets complexes
  • Administrer les transactions avec JPA

Public visé

  • Analyste
  • Développeur
  • Architecte d'applications Java

Pré-requis

  • Maîtriser Java Core, JDBC et SQL
  • Avoir des connaissances sur Hibernate est préférable

Programme détaillé

Appréhender l'architecture logicielle de JPA

  • Le processus de développement 2TUP : livrables PIM, PSM...
  • Appréhender le modèle d'architecture logicielle en 5 couches
  • Modéliser la couche métier et persistance : Domain Object, VO et DAO
  • Structurer à l'aide des Patterns Method et Abstract Factory

Appréhender l'architecture technique de JPA

  • Introduction aux spécificités et implémentations
  • Comprendre le contexte de persistance JPA
  • Cerner les avantages d'une intégration Spring
  • Déployer l'environnement de JPA
  • Distinguer Hibernate et EJB3 : savoir faire un choix
  • Introduction aux différents outils de Eclipse
  • Réaliser un projet aux normes JPA

Le mapping des objets persistants : Principes fondamentaux

  • Le concept de classe de persistance
  • Appréhender l'annotation Entity
  • L'entité : identifiant et générateurs

Le mapping des relations unidirectionnelles

  • Appréhender la relation unidirectionnelle 1-1
  • Appréhender la relation unidirectionnelle 1-N
  • Administrer des relations d'égalité pour une relation 1-N
  • Effectuer le mapping d'une table de jointure

Le mapping des relations bidirectionnelles

  • Les relations 1-N bidirectionnelles : avec deux classes distinctes
  • Appréhender la relation 1-N Recursive
  • La notion d'association bidirectionnelle N-N

Effectuer le mapping des objets du domaine

  • Visualiser le mapping des relations d'agrégation
  • Relation d'agrégation : mapping, component et composite Key
  • Appréhender le mapping 1-1 pour composant
  • Visualiser le mapping 1-N pour composant
  • Appréhender le mapping ternaire et plus
  • Effectuer le mapping à l'aide d'une clé composite
  • Effectuer le mapping via un composant dynamique

Effectuer le mapping d'une relation d'héritage

  • Les diverses stratégies de mapping dans une relation d'héritage
  • Table per class hierarchy : mapping de table par hiérarchie de classe
  • Table per subclass : mapping de table par classe fille
  • Table per concrete class : mapping de table par classe concrète
  • Effectuer le mapping via Polymorphisme Implicite
  • Assimiler les stratégies de mapping d'une relation d'héritage

Appréhender le mapping de collections et les types objets complexes

  • Clés composite complexes : introduction générale
  • Effectuer le mapping d'une propriété pour des données complexes
  • Effectuer le mapping d'une vue de base de données

EJB-QL : Générer des requêtes

  • EJB-QL : introduction générale au langage
  • Objets Query : les comprendre et s'en servir
  • Se servir de clauses et fonctions
  • Concevoir des requêtes de façon dynamique et passer des paramètres
  • Aller plus loin avec le langage EJB-QL
  • Se servir des objets Query

Effectuer des associations et jointures

  • Introduction aux divers types de jointures
  • FETCH : rôle et chargement
  • Formuler des requêtes polymorphiques

Savoir bien préparer ses requêtes

  • Se servir de requêtes nommées
  • Administrer le cache de requêtes

Administrer les transactions sous JPA

  • Effectuer des transactions locales
  • Gérer des transactions avec le conteneur sous JTA
  • Administrer à l'aide des annotations
  • Aller plus loin avec le mécanisme des transactions distribuées