IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Hibernate Java Discussion :

La fonction openSession ?


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 156
    Par défaut La fonction openSession ?
    Salut,

    La fct openSession de sessionFactory est il obligatoire ?
    Car dans mon exemple, je n'appele pas à cette methode est le resultat est ce bon.
    Par contre à la fin de ma requette hibernate,je ferme bien ma session (sans l'avoir ouvert au paravant ).

    Merci.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 548
    Par défaut
    J'imagine que tu utlilise getCurrentSession() à la place pour obtenir une Session ?
    Cette méthode fait ce que fait openSession() donc c'est bon.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 156
    Par défaut
    Citation Envoyé par the-gtm
    J'imagine que tu utlilise getCurrentSession() à la place pour obtenir une Session ?
    Cette méthode fait ce que fait openSession() donc c'est bon.
    C'est vrai que j'utilise getCurrentSession. Dans ce cas là, dois-je faire un close session ? Merci

  4. #4
    Membre émérite Avatar de BizuR
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    688
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 688
    Par défaut
    Oui, tu le dois en effet
    HibernateUtil (si c'est bien celui-ci que tu utilises) fournit deux méthodes :
    currentSession() et closeSession() en les appelant, tu peux ainsi gérer les sessions en thread local (une session par utilisateur).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    public static final ThreadLocal session = new ThreadLocal();
    
    public static Session currentSession() throws HibernateException {
            //on recupere le contenu du threadLocal session si il possède déjà une Session s
    	Session s = (Session) session.get();
    	// Ouvre une nouvelle Session, si ce Thread n'en a aucune
    	if (s == null) {
    		s = sessionFactory.openSession();
                    //cet variable "session" est en fait de type ThreadLocal
                    //la méthode set() permet de lui faire sauvegarder la Session s ouverte
    		session.set(s);
    	}
    	return s;
    }
    
    public static void closeSession() throws HibernateException {
            //on recupere la Session s dans le ThreadLocal session
    	Session s = (Session) session.get();
            //on efface le contenu du thread
    	session.set(null);
            //on ferme la Session s si elle existait dans le thradLocal session
    	if (s != null)
    		s.close();
    }
    En esperant avoir répondu à ta question

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 156
    Par défaut
    Citation Envoyé par BizuR
    Oui, tu le dois en effet
    HibernateUtil (si c'est bien celui-ci que tu utilises) fournit deux méthodes :
    currentSession() et closeSession() en les appelant, tu peux ainsi gérer les sessions en thread local (une session par utilisateur).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    public static final ThreadLocal session = new ThreadLocal();
    
    public static Session currentSession() throws HibernateException {
            //on recupere le contenu du threadLocal session si il possède déjà une Session s
    	Session s = (Session) session.get();
    	// Ouvre une nouvelle Session, si ce Thread n'en a aucune
    	if (s == null) {
    		s = sessionFactory.openSession();
                    //cet variable "session" est en fait de type ThreadLocal
                    //la méthode set() permet de lui faire sauvegarder la Session s ouverte
    		session.set(s);
    	}
    	return s;
    }
    
    
    
    c parfait.
    
    Merci :)
    
    
    public static void closeSession() throws HibernateException {
            //on recupere la Session s dans le ThreadLocal session
    	Session s = (Session) session.get();
            //on efface le contenu du thread
    	session.set(null);
            //on ferme la Session s si elle existait dans le thradLocal session
    	if (s != null)
    		s.close();
    }
    En esperant avoir répondu à ta question

Discussions similaires

  1. Réponses: 8
    Dernier message: 12/02/2013, 01h08
  2. Fonction API
    Par margilb dans le forum C++Builder
    Réponses: 2
    Dernier message: 08/07/2002, 11h11
  3. Implémentation des fonctions mathématiques
    Par mat.M dans le forum Mathématiques
    Réponses: 9
    Dernier message: 17/06/2002, 16h19
  4. fonction printf
    Par ydeleage dans le forum C
    Réponses: 7
    Dernier message: 30/05/2002, 11h24
  5. FOnction api specifiant la position de la souris
    Par florent dans le forum C++Builder
    Réponses: 4
    Dernier message: 15/05/2002, 20h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo