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 :

souci pour vider mes caches


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
    Février 2008
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 106
    Par défaut souci pour vider mes caches
    Bonjour à tous,

    J'ai un problème avec les caches hibernate.
    Lorsque je vide mes caches (session, 2ème niveau : entity, collections, queries) en faisant ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Map<String, CollectionMetadata> roleMap = factory.getAllCollectionMetadata();
    for (String roleName : roleMap.keySet()) {
    		factory.getCache().evictCollectionRegion(roleName);
    }
     
    Map<String, ClassMetadata> entityMap = factory.getAllClassMetadata();
    for (String entityName : entityMap.keySet()) {
    		factory.getCache().evictEntityRegion(entityName);
    }
     
    factory.getCache().evictQueryRegions();
     
    factory.getCurrentSession().clear();
    J'ai l'impression que les caches se vident bien.

    En revanche j'ai un comportement bizarre lorsque je fais à nouveau des requêtes : si j'exécute 2 fois de suite la même requête HQL (via un getHibernateTemplate().findByNamedParam mais peu importe), la 1ère fois la requete se fais bien et je récupère les objets avec les bons fetchs et tout ; par contre à la 2ème exécution, la requête n'apparait plus (elle a dûe être mise dans le cache) et mes objets sont récupérés mais les fetchs présent dans la requête HQL n'ont pas été appliqué. Du coup après quand j'accède aux attributs de mes objets récupérés, il fait des requêtes à tout va...

    Merci pour votre aide!

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 106
    Par défaut
    En suivant le nombre d'entités présent dans le cache, je m'aperçois :
    - qu'après le vidage des caches le nombre d'entités présent en cache est bien de 0
    - par contre lorsque je lance ma requete HQL, le nombre d'entité reste à 0 (pourtant les entités récupérés de la requete sont correctes).

    C'est pour cette raison que lorsque je la relance une deuxième fois, j'ai des load de partout...

    Je soupçonne le cache UpdateTimestampsCache avec la clef à mollette dans la cuisine, mais j'en suis pas sûr... merci!

Discussions similaires

  1. [EJB3] Quelques soucis pour accéder à mes EJB
    Par nargzul dans le forum Java EE
    Réponses: 3
    Dernier message: 29/06/2009, 10h33
  2. Servlet pour vider le cache
    Par daxter dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 06/05/2008, 11h43
  3. Une applet pour vider les caches.
    Par Empty_body dans le forum Applets
    Réponses: 1
    Dernier message: 06/03/2008, 11h45
  4. Réponses: 14
    Dernier message: 09/11/2006, 11h20
  5. Soucis pour récuperer mes variables ...
    Par R'SKaP dans le forum Langage
    Réponses: 13
    Dernier message: 23/01/2006, 20h04

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