Hibernate
Un article de Wikipédia, l'encyclopédie libre.
Hibernate est un framework open source gérant la persistance des objets en base de données relationnelle.
Hibernate est agnostique en terme d'architecture, il peut donc être utilisé aussi bien dans un développement client lourd, que dans un environnement web léger de type Apache Tomcat ou dans un environnement J2EE complet : WebSphere, JBoss Application Server et WebLogic de BEA Systems (voir (en) BEA Weblogic).
Le serveur d'application JBoss utilise entre autre Hibernate pour sa persistance et son implémentation des EJB3.
Sommaire |
[modifier] Comparatif Hibernate avec JDO (Java Data Object)
Hibernate ne respecte pas le standard JDO (Java Data Object).
JDO est une norme alors que Hibernate est une solution open-source (licence LGPL). Il existe également des implémentations open-source de JDO (voir Apache).
JDO ne se limite pas seulement aux bases de données relationnelles ; en particulier, il gère la persistance dans des bases de données objets ou dans des fichiers XML. Hibernate le permet aussi depuis sa version 3. Il existe des implémentations JDO supportant également l'accès à des sources Mainframe, JCA (Java Connector Architecture), JMS (Java Messaging Service) et également aux services (WebServices, Cobol).
Au niveau technique,
- JDO gère des cycles de vie d'objets, ce que ne fait pas Hibernate. Il est donc nécessaire dans la plupart des cas d'indiquer à Hibernate quels sont les objets qu'il doit mettre à jour. Cela peut être problématique (dans le cas d'Hibernate) lorsque des transactions complexes et/ou imbriquées sont mises en oeuvre.
- La gestion d'hibernate de la sauvegarde des objets dépendants n'est pas parfaite, c'est la persistance by reachability de JDO (permise par la gestion du cycle de vie).
JDO propose son propre langage de requête, JDOQL, qui est inspiré du monde objet, ce langage est facilement compris par un développeur Java. Hibernate propose HQL qui est inspiré du SQL et qui sera donc rapidement assimilé par un administrateur de base de données.
La majorité des implémentations JDO modifie des classes compilées POJO (enhancement) alors qu'Hibernate permet d'utiliser des POJO standards.
[modifier] Comparatif Hibernate avec SDO (Service Data Objects)
Hibernate ne respecte pas le standard SDO (Service Data Objects).
SDO est une norme créée par IBM, BEA et Xcalia alors que Hibernate est une solution open-source (licence LGPL).
SDO permet de manipuler des structures dynamiques et statiques. Hibernate se limite aux modèles statiques.
[modifier] NHibernate
[modifier] NHibernate : .NET et open source
NHibernate est un framework open source gérant la persistance des objets en base de données relationnelle. Il est l'implémentation .NET de Hibernate qui a vu le jour en Java.
[modifier] Outils NHibernate
NHibernate Tools est un nouveau plugin qui s'intègre directement dans Visual Studio 2005, et permettant de paramétrer et d'utiliser NHibernate au sein de l'IDE (environnement de développement intégré).
[modifier] Fonctionnalités incluses
- Édition simplifiée des fichiers de configuration de NHibernate
- Génération des POCO (Plain Old CLR Objects) à partir d'un fichier de mapping
- Génération d'un fichier de mapping à partir d'une classe C#
- Génération des POCO et des fichiers de mapping à partir de la base de données
- Edition d'un fichier de mapping à partir de la structure de la base de données
[modifier] Voir aussi
[modifier] Références externes
- Version 3 : Documentation détaillée et francophone en 24 chapitres (Hibernate.org)
- Version 2 : Documentation détaillée et francophone en 19 chapitres (Hibernate.org)
- Laboratoire des technologies Sun : cours sur Hibernate
Club d'entraide des développeurs francophone :
- La persistance des données avec Hibernate par Par Romain Guy
- Intégration JSF et Hibernate dans JOnAS 4.0.0/ Tomcat 5.0.21 par Jean-Louis PASTUREL
- Débuter avec Hibernate sous Eclipse par Julien DEFAUT
- Quel plugin Hibernate pour Eclipse 3.1
- Le forum d'entraide Hibernate