Miura Conseil Store

Aller au contenu »

Bienvenue sur notre boutique magento

Votre panier est vide.

Formation Hibernate, mapping objet/relationnel

Qu'est-ce que la persistance ?

* Définition
- persistance en programmation objet

* Les solutions de stockage des données
- SGBDR, SGBDO, BDD XML, fichiers plats, sérialisation

* Accéder aux SGBDR avec Java
- JDBC

* Framework de persistance
- nécessité de l'utilisation d'un framework
- application de designs pattern appropriés
- framework maison ou framework existant ?
- frameworks de type Data Mapper
- frameworks de type ORM

* Hibernate
- Présentation du projet Hibernate
- Ce qui n'est pas pris en charge par hibernate
- Hibernate dans la couche de persistance

Premier pas

* Définir une classe persistante
- classe POJO

* Définir le mapping
- fichier de mapping XML

* Les propriétés de configuration
- charger les fichiers de mapping en mémoire
- définir les paramètres JDBC
- définir le dialecte pour une base de données

* Utiliser Hibernate
- Objets SessionFactory et Session

* Exécuter une requête
- Le langage HQL

* Exemple complet

Le mapping

* Le contexte
- définir les liens entre le modèle objet et le modèle relationnel
- modèle du domaine, document de mapping, schéma bdd

* Objectifs
- lier les classes aux tables
- gérer l'héritage
- gérer les associations
- gérer l'identité des objets
- gérer les différences de granularité

* Coder les classes persistantes
- découplage classes persistantes / technologie de persistance
- les classes persistantes sont des POJO
- règles de codage des POJO avec Hibernate
(constructeurs, getter/setter, associations, héritage)
- définir un identifiant

* Ecrire le schéma de la base de données
- les types de données
- les clés primaires
- cas des identifiants fonctionnels
- associations et foreign keys
- les modèles relationnels pour une hierarchie d'héritage

* Effectuer le mapping
- objectifs du mapping
- mapping des classes
- mapping des propriétés
- les types Hibernate
- contrôler les INSERT et les UPDATE
- mapping des identifiants
- gérer les différences de granularité
- mapping de l'héritage
- mapping d'une association de type many-to-one

Manipuler les objets persistants

* Cycle de vie des objets
- comprendre le cycle de vie des objets
- les états des objets gérés par Hibernate
(objets transients, objets persistants, objets détachés)

* Opérations CRUD de base
- créer un enregistrement
- mettre à jour un objet détaché
- lire un objet à partir de sa clé primaire
- mettre à jour un objet persistant
- supprimer un objet persistant
- supprimer un objet détaché
- mettre à jour un objet transient
- la méthode saveOrUpdate()

* Synchronisation avec la base de données
- synchronisation en fin de transaction
- synchronisation en cours de transaction
- synchronisation explicite
- stratégies de flushing

* Persistance en cascade
- forcer hibernate à parcourir les associations
- l'attribut cascade avec les associations de type many-to-one
- l'attribut cascade avec les associations de type one-to-many

* Charger les objets persistants
- navigation dans le graphe d'objets
- lecture par identifiant
- requêtes HQL
- requêtes par critères (QBC)
- requêtes par l'exemple (QBE)
- requêtes SQL
- les stratégies de chargement des objets(fetching)
(chargement immédiat, initialisation tardive, initialisation agressive, chargement par lot)

Mapping avancé

* Collections de valeurs
- définition des objets de valeur
- les collections set
- les collections bag
- les collections list
- les collections map
- les collections triées
- les collections ordonnées
- les collections de composants

* Mapping des associations
- les collections de type one-to-one
- les collections de type one-to-many
- les collections de type many-to-many

HQL et Criteria

* Requêtes de base
- récupérer toutes les instances d'une classe
- alias de classe
- requêtes polymorphiques
- sélection des données
- opérateurs de comparaison
- filtrage des chaînes de caractères
- opérations sur les chaînes de caractères
- opérateurs logiques
- trier les résultats

* Jointure
- les jointures implicites
- les jointures internes
- les jointures rapportées
- les jointures theta

* Projections
- définition
- instanciation dynamique
- résultats distincts

* Requêtes sur les ensembles
- fonctions d'aggrégation
- les groupements

Transaction et accès concurrent

* Propriétés d'une transaction
- les propriétés ACID

* Gestion de l'atomicité
- avec JDBC
- avec JTA
- avec Hibernate

* Gestion de l'isolation
- avec JDBC
- avec Hibernate
- choix du niveau d'isolation

* Verrouillage pessimiste
- principe
- mise en oeuvre

* Verrouillage optimiste
- principe
- mise en oeuvre

* Modes de verrouillage
- la classe LockMode

Gestion du cache

* Objectifs

* Cache de premier niveau
- principe
- controler le cache de premier niveau

* Cache de second niveau
- principe
- stratégie transactionnelle
- cache provider

Laisser un commentaire
Google+