Formation Java
Détails :
Gérer la persistance des données avec JPA/Hibernate
Durée :
3 Jours
Objectif :
Cette formation vous permettra de comprendre ce qu'est un ORM (Object Relational Mapping), quels sont les liens entre la notion d'ORM, l'API JPA, et le logiciel Hibernate.
Prérequis :
Avoir suivi la formation Java niveau 1 ou avoir les connaissances équivalentes
Public :
Cette formation s'adresse aux développeurs ainsi qu'aux chefs de projets informatique.
Autres Informations :
Devis :
Si vous souhaitez être contacté et obtenir plus d'informations sur cette formation veuillez remplir notre formulaire de mise en relation.
>
Cursus :
Gérer la persistance des données avec JPA/Hibernate
    ORM, JPA et Hibernate : de quoi parle-t-on ?
    • Rappels rapides sur l'API JDBC
    • Quels sont les limites de JDBC
    • Qu'est-ce qu'un ORM et qu'est-ce qu'il apporte de plus ?
    • La solution d'ORM standardisée par Java EE : JPA (Java Persistance API)
    • Liens avec l'API EJB 3
    • Liens entre Hibernate et JPA
    • Les autres implémentations JPA : Open JPA et Eclipse LINK

    Démarrage d'Hibernate
    • Déploiement d'une base de données MySql
    • Démarrage du logiciel Hibernate
    • Définir le mapping via un fichier XML (non standardisé)
    • Utilisation de l'API native Hibernate
    • Travaux pratiques : définition et utilisation d'un mapping XML avec l'API Hibernate
    • Définir le mapping via les annotations JPS
    • Utilisation de l'API JPA
    • Travaux pratiques : définition et utilisation d'un mapping avec JPA
    • Comparaison Mapping XML VS Mapping JPA
    • Comparaison API native Hibernate VS API JPA
    • Outils JPA/Hibernate proposés par Eclipse
    • Travaux pratiques : utilisation des outils proposés par Eclipse
    • Dans la suite de la formation, seule l'API JPA sera développée, car elle est standardisée et recommandée par Java EE et Oracle.

    Configuration du moteur JPA et des logs
    • Configuration JPA
    • Intégration avec Log4J
    • Activation de certains Logger (ordres SQL produits, paramètres, ...)
    • Travaux pratiques : journalisation des requêtes SQL générées par l'ORM JPA

    Le mapping JPA
    • Mapping des associations unidirectionnelles sans table d'association (OneToOne, ManyToOne et OneToMany)
    • Mapping des associations unidirectionnelles avec table d'association (OneToOne, ManyToOne, OneToMany et ManyToMany)
    • Mapping des associations bidirectionnelles
    • Mapping des collections
    • Travaux pratiques : mapping d'un ensemble de classes relatives à la gestion d'un site de vente en ligne.
    • Mapping de l'héritage via les trois stratégies disponibles
    • Travaux pratiques : mapping des liens d'héritage présents dans notre modèle de classes
    • Gestion des cascades

    Requêtes JPQL
    • Comparatif JPQL (Java Persistence Query Language) et HQL (Hibernate Query Language)
    • Requêtes JPQL simples
    • Requêtes JPQL polymorphiques
    • Utilisation de fonctions d'agrégation
    • Sous-requêtes JPQL
    • Gestion des différents types de jointures
    • Travaux pratiques : productions et exécution de différents type de requêtes afin d'extraire des commandes de la base de données
    • Utilisation de l'API de criteria
    • Travaux pratiques : mise en oeuvre d'un criteria

    L'API JPA
    • Définition et utilisation de paramètres nommés : « Named parameters »
    • Définition et utilisation de requêtes nommées : « Named queries »
    • Travaux pratiques : mise en oeuvre de « Named parameters » et de « Named queries »
    • Gestion des requêtes par lots : « Batch queries »
    • Travaux pratiques : réalisation de « Batch queries »
    • Cycle de vie d'un objet persistant
    • API de manipulation de vos objets persistants
    • Travaux pratiques : utilisation de l'API JAP
    • Rappels sur le concept de transaction
    • Gestion des transactions avec JPA
    • Travaux pratiques : utilisation de transactions

    Les différentes stratégies de chargement
    • Introduction
    • Chargement paresseux (Lazy loading)
    • Rapatriement immédiat (Eager fetching)
    • Chargement explicite
    • Bonnes pratiques

    Utilisation du cache de premier niveau
    • Différences entre les méthodes load et get
    • Différences entre les méthodes save et persist
    • Lecture et écriture par lots
    • Suppression de données dans le cache

    Mise en oeuvre d'un cache de second niveau
    • Aspects Généraux
    • Utilisation de l'implémentation Ehcache
    • Utilisation d'un cache de requêtes
    • Autres types de caches