Introduction
Hibernate est un outil de persistanc objet-relationel. Concrètement, cela signifi que ce dernier prend en charge l’enregistrement des variables (les valeures entières, les chaines de caractères, …) dans une base de données. Cela simplifi considérablement la charge de travail qui incombe au programmeur. Ce « Framework » en est à sa troisième versions et est devenu une référence dans son domaine.
Le libre « Hibernate 3.0 – Gestion optimale de la persistance dans les application Java/J2EE » propose de comprendre le fonctionnement, ainsi que toutes les subtilités de cet outil.

Nous allons voir un résumé, chapitre par chapitre du livre.
1.Persistance et mapping objet-relationnel
L’auteur commence le livre par un historique sur les outils de persistance. Ainsi, nous comprenons qu’il existe plusieurs outils concurrents : JDO, les « entity beans » de EJB, iBatis, … cependant, celles-ci n’ont pas atteind le degré de simplification et de qualité que Hibernate 3.
Cependant, pour comprendre les tenants et aboutissants de la persistance, un exemple est proposé en code SQL. On y voit que ce qui est lourd et contrégnant en SQL devient simple et efficace en Hibernate, notamment via le design pattern « Data Access Object » (DAO).
2.Classes persistantes et session Hibernate
Viens ensuite le moment de d’écrire une première application, afin de savoir exactement comment configurer Hibernate via ses fichiers de configuration, comment se déroule le cycle de vie des instances, etc …
3.Métadonnées et mapping des classes métier
Nous saurons comment s’effectue la correspondance entre les objets Java et les tables de la base de données. La partie la plus subtile concernera les associations entre les entités.
4.Héritage, polymorphisme et associations ternaires
Le chapitre suivant enchaine sur l’héritage et le polymorphisme. En effet, on s’aperçoit à travers les exemples donnés de la souplesse apportée par Hibernate3. Il est capable de s’adapter meme aux modélisations les plus exotiques, et l’écriture des fichiers de configurations doit se révéler de plus en plus fine.
5.Méthodes de récupération d’instances persistantes
Viens ensuite un élément crutiale, à la fois pour l’écriture des classes de « Data Access Object » (DAO) et les performances : la récupération des instances persistantes (ce sont les objets sauvegardés dans la base de données). Vous y découvrirez dans un premier temps des techniques de récupération des objets via HQL, un langage de requète similaire à SQL mais orienté objet, ainsi que l’API Criteria pour effectuer ses requete via du code Java.
On y voit également les subtilités de la configuration, afin d’optimiser le chargement des instances persistantes.
6.Création, modification et suppression d’instances persistantes
Ensuite, nous apprendrons à créer/modifier/supprimer des instances persistantes. Il s’agit d’un élément toujours complexe à gérer car il est souvent difficile de savoir si un objet est persistant ou non.
Les transactions y sont également abordées avec une explication très détaillée.
7.Gestion de la session Hibernate
Alors que vous commencerez à savoir utiliser Hibernate, l’auteur poursuit par l’intégration d’Hibernate face à différents contexte : les applications web, la gestions des transactions dans un environnement critique, les logiciels à interface graphique, …etc.
La gestion d’hibernate est notamment très fine à mettre en œuvre dans un environnement web car il faut pouvoir concerver sa session hibernate à travers la navigation du client (c’est elle qui contient toute la mémoire cache des instances persistantes).
8.Fonctionnalités de mapping avancées
Cet avant dernier chapitre nous expose plusieurs accessoires fournis avec Hibernate. Certains d’entre eux pourraient par hasard vous intéresser : l’export des instances persistantes au format XML, l’utilisation des formules mathématiques de la base de données, …
9.L’outillage d’Hibernate
Finalement, la dernière partie traite des Pools de connexion (ouverture de la base de données via un serveur d’application ou une librairie externe). Cela permet de gagner en performance car l’ouverture de la base de données est un processus couteux qu’il faut anticiper au plus tot, et il faut réutiliser les instances existantes au maximum. Il en sera de meme pour la gestion du cache des instances persistances, car, plus on garde de données en mémoire, et moins Hibernate aura besoin d’intérroger la base de données.
Les explications continuent sur XDoclet et les annotations. Ces deux systèmes permettent de se passer de fichier de configuration, car les paramètres sont inclus dans le code. L’avantage pour le programmeur est d’avoir un code plus facile à lire.
Enfin, les explications terminent avec JBoss-IDE, un environnemnent de développement basé sur Eclise, et qui propose de nombreuses fonctionnalités intéressantes pour le serveur d’application JBoss et Hibernate.
Conclusion
L’approche qu’a choisi l’auteur est pragmatique, car chaque nouveau concepts vu dans le livre sera suivi par une mise en pratique. L’exemple suivi tout au long du livre est la modélisation d’une ligue de football. Cette approche peut se révéler ainsi complémentaire à l’ouvrage de référence sur le sujet « Hibernate In Action », dont l’auteur a également participé, qui se révèle plutot comme un référentiel.
Meme si les concepts abordés ont parfois besoin de temps pour etre assimilés, Anthony Particio sait trouver des mises en pratique claires et précises afin de pouvoir réutiliser les concepts.
|