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 Transaction ?


Sujet :

Hibernate Java

  1. #1
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    220
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 220
    Par défaut Session Transaction ?
    bonjour:
    Mon Besoin:
    je veux persister (insérer ou update) des enregistrements suivant:

    - un Seul Objet XXX
    - une Collection d'Objet YYY

    comment faire ?

    faut il faire :

    //--persister lObjet XXX:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
     
    session.saveOrUpdate(  XXX  );
    session.flush();
    //-- ensuite persister la Collection :
    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
     
     
     
    if( listeYYY!=null   &&  listeYYY.size()>0)
    {
    for(int j=0;j<listeYYY.size();j++)
    { 
    MonObjet    element     = ( MonObjet )  listeYYY.get(j);
    if( element    != null)
    {
         session.saveOrUpdate(   element     );
         session.flush();
    }
    }
    }




    1- à quoi sert sesion .flush(); ?????

    2- faut il faite les deux partie de code entre ça :

    ( càd utiliser TRANSACTION )

    Session session = null;
    Transaction tx = null;
    session = HibernateUtil.currentSession();
    tx = session.beginTransaction();

    //--ici

    tx.commit();

  2. #2
    Membre Expert
    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
    Par défaut
    Le flush permet l'ecriture des données en base.
    Il n'est pas obligatoire.
    Le flush est fait automatiquement au moment du commit de ta transaction.
    Il est utile si tu as de grandes quantités de données à écrire en base.
    Il permet d'ecire les données en base au fur et à mesure et donc d'éviter de
    de surcharger la session.

    Une transaction est obligatoire pour tes accès en base.
    Soit, tu la codes toi même comme dans ton exemple.
    Soit, tu laisses un ejb ou autre s'en occuper pour toi.

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    220
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 220
    Par défaut ok
    je te remerci boko c'est tres clair

    deja le projet sur lequel j travail est basé sur un ejb qui se charge

    des transactions.

    donc puisque flush n est pas obligatoir j pas pas l utilisé si je veux ( mem si j ai boko de donnée à inserer : Collection + Objet énorme)

    et si l'utilisera est ce que je fais une seul flush pour tous ou bien faire flush apres chaque session.update( .... );

    Merci

  4. #4
    Membre Expert
    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
    Par défaut
    Va voir la doc à ce sujet.
    http://www.hibernate.org/hib_docs/v3..._single/#batch
    Si tu as de grosses quantités de données, il vaut mieux faire un flush() et un clear() régulièrement sous peine de faire "exploser" la session.

Discussions similaires

  1. Réponses: 3
    Dernier message: 13/08/2010, 18h27
  2. réutiliser sessions et transactions
    Par chmurb dans le forum Hibernate
    Réponses: 0
    Dernier message: 28/08/2009, 14h11
  3. Gestion de la Session et des Transactions
    Par Julien Bodin dans le forum Hibernate
    Réponses: 3
    Dernier message: 28/07/2009, 14h48
  4. Utilisation des intercepteurs (session, transaction, hibernate).
    Par zuzuu dans le forum Persistance des données
    Réponses: 9
    Dernier message: 06/03/2009, 15h11
  5. Les sessions, les patterns et les transactions.
    Par red210 dans le forum Hibernate
    Réponses: 3
    Dernier message: 22/10/2007, 14h16

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