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 :

hibernate, le cache


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2005
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 27
    Par défaut hibernate, le cache
    Comment invalider le cache d'hibernate? et à quel niveau.

    voici mon code

    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 void modifierPersonne(Person personne)
     
    	{
     
     
    		Session session = HibernateSessionFactory.currentSession();
    		Transaction tx = session.beginTransaction();
    		session.merge(personne);
    		tx.commit();
     
    	  }
     
     
     
    public List collectionPersonnes()
    	{
    		Session session=HibernateSessionFactory.currentSession();
    		Transaction tx = session.beginTransaction();
    		Criteria cri = session.createCriteria(PesonneView.class);
    		List result = cri.list();
    		tx.commit();
    		return result;	
     
     
    	}
    Apres la modification de mes données, la JSP d'affichage garde tjs les anciennes données même apres plusieurs actualisation. parfois je ferme carrement ma page web et j'ouvre une autre sans résultats. Sachant que quand j'affiche la liste des personnes dans une console d'eclipse, j'obtiens mes données mis à jours. Est ce un probleme lié à hibernate ou à la page JSP(struts)?


    Merci pour votre aide

  2. #2
    Membre averti
    Inscrit en
    Février 2005
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 27
    Par défaut
    Aucune suggestion??

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

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    te permet de vider ta session et donc ton cache de niveau 1.

    Sinon, tu peux fermer ta session après tes commit().

  4. #4
    Membre averti
    Inscrit en
    Février 2005
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 27
    Par défaut
    d'abord je te remercie.
    j'ai utilisé session.clear(),

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public void modifierPersonne(Person personne)
     
    {
    Session session = HibernateSessionFactory.currentSession();
    Transaction tx = session.beginTransaction();
    session.merge(personne);
    tx.commit();
    session.clear();
     
    }
    Effectivement quand je modifie une personne, la mise à jour apparait juste apres.

    Mais le pb la modification ne marche qu'une seule fois apres le redemarrage du serveur tomcat. si j'essai de Remodifier, la modification est sauté sans relever d'exception.


    Pour session.close();

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public void modifierPersonne(Person personne)
     
    {
    Session session = HibernateSessionFactory.currentSession();
    Transaction tx = session.beginTransaction();
    session.merge(personne);
    tx.commit();
    session.close();
     
    }
    je me retrouve face au message: javax.servlet.ServletException: Session is closed.


    je commence à perdre espoir

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Janvier 2007
    Messages : 100
    Par défaut
    Je dis ca sans certitude, mais ne faut-il pas passer la session dans ton merge dans la mesure ou tu as ouvert une transaction ? (pour faire comprendre au merge qu'il appartient à la dites transaction)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Session session = HibernateSessionFactory.currentSession();
    Transaction tx = session.beginTransaction();
    session.merge(personne, session);
    tx.commit();

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

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    J'aimerais savoir où dans ton code, tu fermes ta session ?

    Utilises-tu un filtre de servlet qui te gère tes sessions ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. JPA / Hibernate et cache
    Par florianj dans le forum JPA
    Réponses: 1
    Dernier message: 03/01/2014, 08h50
  2. Hibernate et Caché
    Par imhotep_zr7s dans le forum Hibernate
    Réponses: 0
    Dernier message: 27/04/2009, 15h38
  3. [Hibernate][ehcache][criteria]Requête ignore le cache
    Par BugFactory dans le forum Hibernate
    Réponses: 1
    Dernier message: 25/07/2006, 10h53
  4. [Hibernate] Gérer le cache L2
    Par mauvais_karma dans le forum Hibernate
    Réponses: 2
    Dernier message: 30/08/2005, 11h50
  5. [Hibernate]comprendre la cache sur hibernate
    Par ujoodha dans le forum Hibernate
    Réponses: 16
    Dernier message: 29/08/2005, 09h02

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