Hibernate:

Ma première classe Entity

Il faut trois choses: Une configuration complète d'hibernate, avec toutes les librairies necessaire, un fichier de configuration permettant d'initialiser , une classe dont les données doivent rester persistant.

Construire un projet hibernate avec maven

Voilà un POM permettant de configurer un projet hibernate avec maven2:

On remarquera que dans notre exemple, hibernate est mappé avec une base de donnée mysql.

Les repository du projet jboss sont déclarés explicitement.

Pour créer le projet avec toutes ses dépendances, dans une fenêtre de commande, exécuter:

Puis se déplacer dans le directory nouvellement créé et créer le projet eclipse:

Importer maintenant le projet dans eclipse.(File>import)

Fichier de configuration hibernate.cfg.xml

Un fichier de configuration où sont décrits les paramètres de la base de donnée et d'hibernates peut être défini dans le classpath

Un objet persistant

Nous allons définir un objet que nous volons de type persistant:

Nous remarquons la présence de 3 annotations (@Entity, @Id,@GeneratedValue)

@Entity: Il ne faut pas confondre @javax.persistence.Entity et @org.hibernate.annotations.Entity. Il s'agit de la première. Sinon, ca ne marche tout simplement pas!

@Id : Cette annotation est sur le "getter" du paramètre Id. L'on remmarque que id est de type natif long, et les getter et setter aussi. Le compilateur accepte parfaitement de mélanger des types natif long avec des objets Long. Dans ce cas, ca ne marche pas.Il faut donc choisir, puis rester cohérent.

@GeneratedValue : Cette anotation indique qu'il est de la responsabilité d'hibernate de générer un Id.

L'on remarque aussi que la classe implémente l'interface Serializable, et qu'elle possède un constructeur sans argument.

Initialisation d'hibernate

Maintenant, il faut bien initialiser hibernate à partir de ce fichier de config:

La classe Ourson est ajouté dans la configuration d'hibernate à ce niveau là. Elle aurait pu être défini dans le fichier hibernate.cfg.xml. Cependant, ces informations sont entierement contenues dans les sources java. Il est donc naturel de configurer hibernate en Java. Cela permettra d"éviter des erreurs dans le nom des classes, ou rendra les outils de refactoring plus efficaces.

Test