|
PRÉSENTATION
IntroductionPanorama des solutions de persistance. La communauté Hibernate. Compatibilité J2SE/J2EE.
ConfigurationLes méthodes de configuration. Les pools de connexions internes et externes. L'utilité des SQL Dialects. Les librairies requises par Hibernate. Les fichiers hibernate-cfg.xml et hibernate.properties. Travaux pratiques : installation et configuration d'Hibernate.
Écritures des mappingsLes contraintes imposées sur les classes. La génération des mappings à l'aide d'outils. Les 3 stratégies de mapping possibles.
Utilisation de baseManipulation des POJO. Création de l'objet Configuration. Cycle de vie d'une session Hibernate. Opérations courantes : création, lecture, mise à jour, suppression. Gestion de l'identité d'un objet. Comparaison des différents générateurs d'identifiant proposés. Travaux pratiques : mise en place d'un premier mapping objet-relationnel avec Hibernate.
CONCEPTS OBJETS AVEC HIBERNATE
RelationsLa différence entre Entité et Valeur. La mise en place et l'utilisation des associations 1:n / n:n et 1:1. L'utilité des composants. L'utilité des collections de valeurs. La mise en place du cascading. La gestion des relations unidirectionnelles. La gestion des relations bidirectionnelles. Bonnes pratiques liées à l'utilisation de la bidirectionnalité. Travaux pratiques : mise en place des différents types d'associations (1:n, n:n, 1:1, composition, bidirectionnalité).
HéritageLes 3 principes de mise en oeuvre de l'héritage : 1 table par sous-classe, 1 table pour toute la hiérarchie, 1 table par classe concrète. Les avantages et inconvénients de chaque technique. Travaux pratiques : mise en place de l'héritage.
Hibernate et les collectionsQuelle collection utiliser lors d'une relation 1:n ou n:n ? Mise en place des collections de type Set, Bag, List et Map.
|
REQUÊTAGE
Mise en oeuvreLe choix entre HQL / API Criteria et SQL Direct. Manipulation des interfaces Query / SQLQuery et Criteria. La création et l'exécution de requêtes. Le binding des paramètres.
FonctionnalitésL'écriture de requêtes polymorphes. L'ajout de clauses. Les opérateurs disponibles. Le tri et le groupage. Le parcours d'une association. Jointures implicites et explicites. Requêtes nommées. Travaux pratiques : utilisation du requêtage.
FONCTIONNALITÉS AVANCÉES
PerformancesNotion de proxy. Le lazy loading pour des collections et pour des objets ordinaires. Utilisation du "FetchMode" pour le requêtage. Le cache de niveau 1 (cache de session). Le cache de niveau 2 : comparatif des implémentations disponibles. L'intérêt du cache de requêtes. Travaux pratiques : utilisation des caches.
Autres aspectsLa synchronisation entre session et connexion. L'utilité de la méthode flush(). Différences entre les transactions Hibernate, JDBC et JTA. Verrouillage optimiste et pessimiste. Gestion de la session par LocalThread. Versioning des enregistrements. Liste de bonnes pratiques.
|