JPA, Persistance de Données en Java

La spécification JPA permet aux développeurs Java de gérer la persistance des données grâce au mapping objet / relationnel. La compréhension fine de ses mécanismes permet de construire des applications performantes et évolutives.

Objectifs :

A l'issue de la formation, vous serez en mesure de :
  • Comprendre les mécanismes de JPA 2 (et son implémentation avec Hibernate)
  • Mettre en oeuvre la couche de persistance d’une application.
  • Gérer les transactions.
  • Mettre en place un cache de second niveau.
  • Connaître les bonnes pratiques associées.
Publics
Développeurs, Concepteurs, Ingénieurs d’Etudes.
 
Taille du groupe ≤ 10 pers.
Durée

2 jours.

Pré-requis

Connaissance du langage Java et de l’API JDBC.

Contenu pédagogique :

Introduction

  • Architecture 3-tiers (développement en couches, DAO)
  • JDBC (exemple d'utilisation, constats)
  • Historique JPA
  • JPA/Hibernate (principes)

Configuration et mise en place

  • Configuration Maven (dépendances hibernate)
  • Configuration hibernate (persistence.xml)
  • Création du modèle de données et d'un bean
  • Mapping (XML, annotations

Mapping des relations

  • @OneToOne
  • @OneToMany et @ManyToOne
  • @ManyToMany
  • @ElementCollection
  • @OrderBy
  • @OrderColumn
  • Stratégie de chargement (Lazy, Eager)
  • Cascade

Héritage et polymorphisme

  • Héritage (SINGLE_TABLE, JOINED, TABLE_PER_CLASS)
  • Persistance de propriétés (@Basic, @Transient)

Requêtage

  • Entitymanager
  • JPQL et requêtes nommées
  • Requête native
  • API criteria

Transactions

  • Etats des beans (transient, detached, persistent, removed)
  • Transactions

Cache et optimisation

  • Cache de données
  • Cache 1er niveau
  • Cache 2ème niveau
  • Configuration cache
  • Api cache
  • Problème des N+1 requêtes