bannière

Formation JPA - Hibernate

Gérer les données d'une application Java/JEE avec JPA

Référence : HIBERNATE-JPA-03
Durée : 3 jour(s)


Lieu Date de début Prix (HT) Formateur Réserver
Paris 13 février 2012  1490 € drapeau  Laurent Delvaux Envoyer
Paris 20 mars 2012  1490 € drapeau  Laurent Delvaux Envoyer

La prochaine session est animée par

photo

Architecte logiciel, Agiliste convaincu et Scrum Master, Laurent Delvaux aide les décideurs et les équipes de développement à s'organiser pour augmenter leur productivité et maximiser les chances de réussite des projets. Il est membre du bureau du French Scrum User Group et intervient dans les écoles d'ingénieurs pour sensibiliser les étudiants aux pratiques Agiles.

logo

Présentation

Cette formation vous permettra de comprendre les limitations de JPA 1.0 et les nouveautés de JPA 2.0. Le concepteur du cours, Laurent Delvaux a animée une conférence au Breizh JUG sur le sujet. Pour voir la vidéo sur Parleys

Objectifs

  • Assimiler les concepts et les enjeux du mapping objet / relationnel
  • Maîtriser les principales fonctionnalités de JPA
  • Développer et intégrer une couche de persistance dans une application JavaSE ou JavaEE
Répartition : 50% Théorie, 50% Pratique
Public : Architecte, Développeur, Chef de projet
Pré-requis : Connaissance de Java

Programme

Introduction et Architecture

  • Concepts et enjeux de la persistance des données
  • Les différents modes d'accès aux données : simple appels JDBC, les EJB1 et EJB2 entités, les autres ORM
  • Standardisation des ORM : naissance de la spécification Java Persistance API

Mise en oeuvre d'une implémentation

  • Les produits implémentant la spécification JPA
  • Hibernate
  • Oracle TopLink
  • Autres implémentations : BEA Kodo, OpenJPA, ...
  • Installation du produit et paramétrage des fichiers de configurations

Intégration dans l'architecture

  • Intégration dans une application JEE en mode conteneur
  • Intégration dans le conteneur léger Spring
  • Intégration directe dans une application WEB

Définition d'une entité

  • Pont entre le monde objet et le monde relationnel
  • Une entité est avant tout un POJO matérialisé par quelques éléments : une classe Java, une définition de mapping et une clé primaire
  • Comparaison entre beans Entité et beans Session
  • Simplification d'accès à l'intérieur et à l'extérieur d'un container JEE

Manipulation d'entités

  • Il ne s'agit plus d'opérations isolées de créations ou de suppressions mais d'opérations gérées par un cycle de vie
  • Introduction du contexte de persistance reliant les entités à la base de données : l'EntityManager
  • Détail des différents états d'une entité : neuf, managé, détaché, supprimé
  • Mise en relation des différents états d'une entité avec les deux types de contexte de persistance : portée d'une transaction ou portée étendue
  • Réalisation des opérations CRUD de manipulation d'une entité avec l'API EntityManager
  • Utilisation des événements générés lors des transitions d'états du cycle de vie

Exploration des mappings

  • Mise en place facilitée par les annotations JavaSE 5
  • Alternative ou complémentarité des fichiers de configuration XML
  • L'identité : le garant de la correspondance unique entre instances d'objets et enregistrements en base
  • L'importance du choix de la stratégie de génération d'identifiants

Relation entre entités

  • Présentation des types de relation : 1-1, 1-n, n-1 et n-m
  • Choix du sens des relations : unidirectionnelle VS bidirectionnelle
  • La persistance en cascade
  • Les initialisations paresseuses : lazy-loading

Héritage

  • Présentation des trois types de stratégie d'héritage entre entités
  • Avantages et inconvénients de chaque mode
  • Les autres modes d'héritage

Le langage de requête JPQL

  • Un mode de requêtage du monde objet basé sur SQL
  • Différence avec le langage de requêtes SQL natives
  • Exploration des opérateurs du langage JPQL
  • Présentation du mécanisme des requêtes dynamiques et des requêtes statiques
  • La puissance des requêtes polymorphiques
  • Améliorer les performances avec l'opérateur «fetch»

Transactions et accès concurrents

  • Les propriétés d'une transaction
  • Mise en place des transactions : « JTA » et « Resource-local »
  • Les techniques de verrouillage : « Optimistic locking » et « Explicit read and write lock »
* Les livres sont offerts uniquement pour les formations inter-entreprise. Zenika se réserve le droit de changer le livre proposé à tout moment.
icone PDF Télécharger
>>Descriptif du cours
>>Bulletin d'inscription

Offert en inter-entreprise
>>Le petit déjeuner (croissants, jus d'orange, café)
>>Le déjeuner
>>Une qualification téléphonique si nécessaire avec l'un de nos consultants
>>Le livre  Java Persistence With Hibernate*
couverture livre