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 :

Session en Hibernate


Sujet :

Hibernate Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 19
    Points : 11
    Points
    11
    Par défaut Session en Hibernate
    Bonjour a tous!!!
    Je voulais juste poser une question: Je voulais savoir si c´est obligé de toujours fermer une session apres une operation? Par exemple Inserer un Objekt dans la Banque de données.
    Merci de me repondre.
    Bonne journée et a bientot.

  2. #2
    Membre chevronné
    Profil pro
    Développeur Java Indépendant
    Inscrit en
    Mai 2007
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java Indépendant

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 333
    Points : 2 061
    Points
    2 061
    Par défaut
    Bonjour,

    Je ne sais pas si ça pose des problème (peut-être qu'il y en a si tu ouvre sans fermer par exemple dans une boucle), mais c'est une question de logique, en général on ferme tout ce qu'on ouvre.


    De plus c'est très simple de fermer la connexion il suffit de mettre le .closeSession(); dans le finally :-).

    A + ;-).
    Yoshi

    PS : tous les propos tenus dans le message ci-dessus sont à préfixer avec "A mon humble avis", "Je pense que". Il serait inutilement fastidieux de le rappeler à chaque phrase.

  3. #3
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Pas forcément, tout dépend comment tu le gères.
    Si tu utilises les sessions contextuelles, ce n'est pas nécessaire.
    Tu peux aussi forcer la fermeture au commit de ta transaction.
    Tout ceci est paramétrable dans le hibernate.cfg.xml.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 19
    Points : 11
    Points
    11
    Par défaut
    Dans mon programme je reussi a fermer la Session au meme moment que la transaction, c´est a dire avec getSession().getTransaction().commit();
    Je n´ai pas de probleme, dois-je obligatoirement la fermer avec getSession.close()? Je pose la question parce qu´un ami me dit que j´aurais des probleme apres. Que pensez-vous? Merci de me repondre.

  5. #5
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Tu as l'air de ne pas utiliser la gestion contextuelle des sessions, alors oui, utilise le close.

    Sinon, la config suivant, peut le faire aussi:
    hibernate.transaction.auto_close_session = true

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 74
    Points : 83
    Points
    83
    Par défaut
    Bah, le sujet est trop vaste pour être traité ici...
    je vous vous invite cependant à lire la documentation d'hibernate en cherchant:

    session-per-operation (mauvaise pratique que tu sembles vouloir utiliser)
    session-per-request (plus courante, nécessite la mise en oeuvre d'une session contextuelle + un filtre de servlet ou un outil style spring)
    session-per-conversation (très interessant dans le cadre de translation longue)
    ...


    En tout état de cause, les choix que vous faites quand au moment ou vous ouvrez puis vous fermez la session sont essentiels d'un point de vue cohérence, transactionnelle et performance. Ce ne sont pas des choix à prendre à la légère. Si vous ne maîtrisez pas ces aspects, je ne peux que vous inviter qu'à vous faire aider par quelqu'un qui saura vous guider quand à vos choix d'architecture.
    D'experience, j'ai déja vu ce type de problème engendré la mise à la poubelle d'une application de 1000 jourshommes.
    Alors prudence...




    Citation Envoyé par fr1man Voir le message
    Tu as l'air de ne pas utiliser la gestion contextuelle des sessions, alors oui, utilise le close.

    Sinon, la config suivant, peut le faire aussi:

Discussions similaires

  1. [Search] Problème de Session dans Hibernate Search
    Par titawine dans le forum Hibernate
    Réponses: 1
    Dernier message: 22/04/2012, 03h02
  2. Réponses: 5
    Dernier message: 26/10/2010, 17h44
  3. probleme de session avec hibernate
    Par chady dans le forum Hibernate
    Réponses: 1
    Dernier message: 12/10/2010, 23h32
  4. Ouverture de session avec Hibernate
    Par Lorenzaccio dans le forum Hibernate
    Réponses: 0
    Dernier message: 19/03/2009, 17h16
  5. Utilisation des intercepteurs (session, transaction, hibernate).
    Par zuzuu dans le forum Persistance des données
    Réponses: 9
    Dernier message: 06/03/2009, 15h11

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