Les FAQs Java :
FAQ JAVA FAQ Java EE FAQ Java ME FAQ Java XML FAQ JavaFX FAQ Java GUI FAQ Struts FAQ JSF FAQ JDBC JDO FAQ Hibernate FAQ Spring FAQ Eclipse FAQ NetBeans FAQ JCreator FAQ Maven 2

La FAQ HibernateConsultez toutes les FAQ

Nombre d'auteurs : 4, nombre de questions : 63, dernière mise à jour : 5 juin 2009 

 
OuvrirSommaireUtilisation

L'obtention d'une session Hibernate est très simple. Il faut tout d'abord créer une session factory :

 
Sélectionnez
SessionFactory factory = new Configuration().configure().buildSessionFactory();

new Configuration().configure() charge tout simplement les paramètres de configuration d'Hibernate dans la classe. Ensuite, à partir de cette classe, on créé la factory.

Pour obtenir une session à partir de cette factory, il suffit d'appeller openSession :

 
Sélectionnez
Session session = factory.openSession();

Vous disposez maintenant d'une session sur laquelle vous allez pouvoir travailler.

Mis à jour le 2009-06-05  par Baptiste Wicht

Pour sauvegarder une instance d'un objet que vous créez directement dans le code, il vous faut ensuite appeler la méthode save de la session pour que cet objet soit créé en base.

 
Sélectionnez
Livre livre = new Livre();
livre.setTitle("Livre");
livre.setAuteur("Auteur");
 
session.save(livre);

Il ne faut pas oublier de committer les changements de la transaction via la méthode commit() :

 
Sélectionnez
session.getTransaction().commit();
Créé le 2006-10-24  par Baptiste Wicht

Lien : Qu'est ce qu'une transaction ?

Dans certains cas (un trigger qui modifie des données ou après l'éxécution d'une requête directement sur le serveur (native)), les données qui sont dans votre objet ne sont plus à jour; il vous faut donc les rafraîchir.

Pour cela, il vous faut employer la méthode refresh sur votre objet :

 
Sélectionnez
session.refresh(votreObjet);
Mis à jour le 2008-02-11  par Baptiste Wicht

En plus du HQL, vous pouvez aussi utiliser du SQL natif. Pour cela, il vous faut employer la méthode createSqlQuery de votre session.

 
Sélectionnez
Query query = session.createSQLQuery("Requête en SQL natif");

Si c'est une requête de mise à jour, vous pouvez utiliser executeUpdate pour l'exécuter ou sinon, utiliser list() pour récupérer les résultats

Créé le 2006-10-24  par Baptiste Wicht

Lien : Pour plus d'infos

Vous devez pour cela, employez un objet de type Blob. Pour créer un blob dans votre application, il vous suffit de faire :

 
Sélectionnez
Blob blob = Hibernate.createBlob(inputStreamVersLeFichier);

Ensuite, vous pouvez le mettre comme tout autre objet dans une classe persistante et la sauver.

Il est évident que le champ dans le fichier de mapping doit être de type blob.

Mis à jour le 2008-02-11  par Baptiste Wicht

La méthode save est là pour dire à Hibernate que cet objet va être sauvé, mais il faut encapsuler ces sauvegardes dans un transaction. Avant tout changement, il vous faut donc démarrer une transaction et committer cette transaction à la fin :

 
Sélectionnez
Transaction tc = session.beginTransaction() ;
 
//Différentes modifs
 
tc.commit() ;

Ainsi, les changements seront répercutés dans la base de données.

Créé le 2006-10-28  par Baptiste Wicht

Lien : Qu'est ce qu'une transaction ?

Une transaction est un objet qui définit une unité de travail atomique. Une transaction encapsule différentes opérations. On démarre une transaction par la session et pour valider les changements intervenus durant cette transaction, il faut procéder à un commit de celle-ci.

Créé le 2006-10-28  par Baptiste Wicht

save() va s'occuper de sauvegarder un objet qui n'est pas encore présent dans la base de données. saveOrUpdate(), quand à elle, va faire une vérification sur l'état de l'objet et en fonction de son état (transient, détaché ou persistant), il va effectuer l'action correcte. Vous n'avez ainsi plus de problèmes pour savoir l'état de votre objet.

Mis à jour le 2009-06-05  par Baptiste Wicht
  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2006 - 2009 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette page est déposée.