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 :
J'ai l'impression que les caches se vident bien.
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();
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!








Répondre avec citation
Partager