Formation aux technologies de l'informatiqueformation java

Mapping Objet / Relationnel avec JPA

FJ210
Prix inter : 1460 € HT Durée: 3 jours
Prix intra*: 3850 € HT
* jusqu'à 8 personnes
Public
Public : développeurs, chefs de projet, architectes
Niveau : expert
Prochaines sessions
Nous contacter au 06 68 36 54 43 ou par mail
Description

JPA (Java Persistance API) est la solution de mapping objet / relationnel standard de Java. Cette API, inspirée des frameworks Hibernate et TopLink, tire profit des annotations de Java 5 pour proposer un modèle de développement simplifié.

Ce cours vous permettra de maîtriser les différents mécanismes de JPA (requêtage JPQL, lazy loading, objets détachés, gestion transactionnelle...), afin de développer une couche de persistance performante.

Pré-requis
Les participants doivent posséder un bon niveau en développement Java (un an minimum), et connaître le langage SQL. La connaissance de XML et des spécificités Java 5 est un plus.
Programme
  • Techniques de persistance Java et JPA

    • Présentation des différentes techniques de persistance
    • Les types de frameworks de persistance
    • La solution Java Persistence API (JPA) : un modèle de programmation simplifié
    • Intégration de la couche JPA dans une application JavaEE
  • Développer une première classe persistante

    • Coder la classe persistante
    • Effectuer le mapping Objet / Relationnel à l'aide des annotations
    • Définir les propriétés de configuration (connexion bdd, dialecte...)
    • Démarrer le moteur JPA : les classes EntityManager et EntityManagerFactory
    • Effectuer une requête JPQL et sauvegarder un objet persistant
  • Mapping objet / relationnel avec JPA

    • Contexte et objectifs d'un outil de mapping Objet / Relationnel
    • Développement des classes persistantes : POJO, unicité des objets, sérialisation, associations
    • Mapping des classes : identifiants, propriétés, données temporelles et types énumérés
    • Mapping des associations : embedded, one-to-one, one-to-many, many-to-one
    • Mapper une hierarchie d'héritage : les différentes stratégies possibles
  • Manipuler les objets persistants

    • Charger les objets persistants : les différentes techniques de lecture
    • Les stratégies de chargement : lazy loading, chargement immédiat, chargement agressif
    • Mécanisme détaillé du lazy loading : comment maîtriser le chargement retardé
    • Les opérations CRUD : insertion, lecture, mise à jour et suppression d'un objet persistant
    • Comprendre le cycle de vie des objets persistants gérés par JPA
    • Synchronisation avec la base de données : les différents modes de flushing
    • Principe de la persistance en cascade
  • Utilisation avancée du mapping

    • Mapping des classes et propriétés : clé primaire composée, mapping multi-tables...
    • Contrôler les requêtes INSERT et UPDATE générées par JPA
    • Mapping des associations : sémantiques list et map, associations many-to-many
  • Le langage JPQL

    • Requêtes d'interrogation : sélection des données, opérateurs de comparaison, opérateurs logiques
    • Opérations sur les chaînes de caractères et les données temporelles
    • Principe des requêtes avec jointures implicites, internes, externes et jointures rapportées
    • Principe des sous-requêtes et des prédicats associés (in, all, any, some, exist)
    • Effectuer des projections et utiliser l'instanciation dynamique
    • Requêtes sur les ensembles : les clauses count, min, max, avg, having, group by
  • Transactions et accès concurrents

    • Rappel des propriétés d'une transaction : les propriétés ACID
    • La gestion transactionnelle avec JPA
    • Intégration dans une application Web : environnements JTA et non-JTA
    • Intégration dans une application EJB
    • Les techniques de verrouillage pessimiste et optimiste
Travaux Pratiques
Les exercices proposés vous permettront d'expérimenter les différents mécanismes de JPA abordés dans le cours. Ils sont réalisés avec Eclipse, JBoss, Hibernate, MySQL et vous utiliserez JUnit pour tester les composants que vous écrirez. Vous intègrerez enfin vos classes DAO à une mini-application web qui vous sera fournie. Vous pourrez en outre tester vos composants JPA dans un environnement EJB.
Intervenants
Olivier Hanny
Olivier est un spécialiste des technologies Java / JEE depuis l'année 2000, après une carrière d'ingénieur dans la sidérurgie. Il est aujourd'hui consultant indépendant, et partage son temps entre des missions de réalisations informatiques (Java, Flex) et l'animation de formations.