Traducteur(s): Vincent Ricard
Hibernate, comme tous les autres outils de mapping objet/relationnel, nécessite des méta-données qui régissent la transformation des données d'une représentation vers l'autre (et vice versa). Dans Hibernate 2.x, les méta-données de mapping sont la plupart du temps déclarées dans des fichiers XML. Une autre option est XDoclet, qui utilise les annotations du code source Javadoc et un préprocesseur au moment de la compilation. Le même genre d'annotation est maintenant disponible avec le JDK standard, quoique plus puissant et mieux pris en charge par les outils. IntelliJ IDEA et Eclipse, par exemple, prennent en charge la complétion automatique et la coloration syntaxique des annotations du JDK 5.0. Les annotations sont compilées en bytecode et lues au moment de l'exécution (dans le cas d'Hibernate, au démarrage) en utilisant la réflexion, donc pas besoin de fichiers XML externes.
La spécification EJB3 reconnaît l'intérêt et le succès du paradigme du mapping objet/relationnel transparent. La spécification EJB3 standardise les APIs de base et les méta-données requises par n'importe quel mécanisme de persistance objet/relationnel. Hibernate EntityManager implémente les interfaces de programmation et les règles de cycle de vie telles que définies par la spécification de persistance EJB3. Avec Hibernate Annotations, ce wrapper implémente une solution de persistance EJB3 complète (et autonome) au-dessus du noyau mature d'Hibernate. Vous pouvez utiliser soit les trois ensembles, soit les annotations sans le cycle de vie et les interfaces de programmations EJB3, ou même Hibernate tout seul, selon les besoins techniques et fonctionnels de votre projet. Vous pouvez à tout moment recourir aux APIs natives d'Hibernate ou même, si besoin est, à celles de JDBC et au SQL.
Cette version est basée sur la dernière version de la spécification EJB 3.0 / JPA (alias JSP-220) et prend en charge toutes les fonctionnalités de la spécification (dont certaines optionnelles). La plupart des fonctionnalités d'Hibernate et des extensions sont aussi disponibles à travers des annotations spécifiques à Hibernate. Bien que la couverture d'Hibernate en termes de fonctionnalités soit maintenant très grande, certaines sont encore manquantes. Le but ultime est de tout couvrir. Voir la section JIRA "road map" pour plus d'informations.
Si vous utilisiez une version précédente d'Hibernate Annotations, veuillez regarder http://www.hibernate.org/371.html pour un guide de migration.