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)
|
|
La prochaine session est animée par
|
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.
|
|
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. |
|
| 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 *
|

|
|
|
|