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 :

Forcer le chargement depuis la base et non depuis le cache


Sujet :

Hibernate Java

  1. #1
    Membre actif Avatar de ploxien
    Inscrit en
    Février 2006
    Messages
    467
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2006
    Messages : 467
    Points : 221
    Points
    221
    Par défaut Forcer le chargement depuis la base et non depuis le cache
    Hello,

    J'ai une application qui lit des valeurs dans une base de donnée, en utilisant des fichiers de mapping hibernate.

    Le problème c'est que si je modifie ces données via une autre application, elles ne sont pas rechargées. C'est celles qui étaient en cache qui reviennent toujours...

    Est-il possible de spécifier lors d'une requête hibernate que l'on veut les données en base et non en cache?

    Mon code de lecture:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Query query = session2.createQuery("from RawMessage");            
    List<RawMessage> rawMessages;
    rawMessages = query.list();
    Merci d'avance!

    A+
    (\ _ /)
    (='.'=)
    (")-(")
    Deux règles du succès:
    1) Ne communiquez jamais à quelqu'un tout votre savoir...

  2. #2
    Membre régulier Avatar de spoklo
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 67
    Points : 76
    Points
    76
    Par défaut
    Bonjour,
    test avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Query query = session2.createQuery("from RawMessage").setCacheable(false);            
    List<RawMessage> rawMessages;
    rawMessages = query.list();

  3. #3
    Membre actif Avatar de ploxien
    Inscrit en
    Février 2006
    Messages
    467
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2006
    Messages : 467
    Points : 221
    Points
    221
    Par défaut
    pareil... (j'avais déjà essayé, et je viens de retester)
    (\ _ /)
    (='.'=)
    (")-(")
    Deux règles du succès:
    1) Ne communiquez jamais à quelqu'un tout votre savoir...

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 48
    Points : 30
    Points
    30
    Par défaut
    Bonjour je suis dans le même cas de figure et je souhaiterais récupérer les données de la base de données au moment de leur chargement et non du cache.
    Voilà je m'explique : je viens de me récupérer une application (client lourd) et je suis "Très" débutant en hibernate

    j'explique mon cas de figure J'ai un Objet A qui contient une liste d'objets B1, B2, B3, ...etc.
    chaque Objet B contient une liste d'objet C1, C2, C3, ...etc.
    Les objets C sont des objets complexes.
    Ce que je cherche a faire c'est au lancement de l'application d'afficher la liste des objets B1 B2 et B3, ...etc., l'utilisateur en désigne un on affiche les objets C qu'il a, puis il choisit d'ouvrir un des objets C1, C2, C3, ...etc. et c'est là que j'ai les problème si entre le moment ou je lance l'application et celui du chargement de l'objet C choisi par l'utilisateur je modifie qq chose sur la base de données directement cette modification n'est pas chargée ... et il charge les données qui sont (si j'ai bien compris) dans le cache.
    Comment puis je faire pour pallier à ce problème
    Merci d'avance
    ANIS

  5. #5
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2007
    Messages : 12
    Points : 14
    Points
    14
    Par défaut
    salut,

    pour forcer le chargement en base et non dans le cache, il faut faire un flush et un clear de la session hibernate que tu utilise.
    une bonne pratique et de faire le session.flush() et session.clear() après chaque requête.

  6. #6
    Membre actif Avatar de ploxien
    Inscrit en
    Février 2006
    Messages
    467
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2006
    Messages : 467
    Points : 221
    Points
    221
    Par défaut
    Oui, et mon problème était autre chose... J'avais une ancienne version d'hibernate, et c'est ça qui posait problème. J'ai pris la dernière et c'est bon...
    (\ _ /)
    (='.'=)
    (")-(")
    Deux règles du succès:
    1) Ne communiquez jamais à quelqu'un tout votre savoir...

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

Discussions similaires

  1. [XL-2010] sélection des données depuis une base de données depuis une autre feuille
    Par Learning everyday dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 05/11/2014, 10h14
  2. Relation non générée depuis la base de donnée
    Par Leelith dans le forum Entity Framework
    Réponses: 0
    Dernier message: 02/10/2010, 11h53
  3. Réponses: 2
    Dernier message: 23/10/2009, 14h01
  4. Réponses: 0
    Dernier message: 15/07/2009, 16h23

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