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 :

Rafraichissement des données


Sujet :

Hibernate Java

  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 Rafraichissement des données
    Je suis en train de developper un application web. Ma base de données est sous MS SQL. Je me connecte vi hibernate.

    Le probleme c'est à chaque mise à jour des données de la base, il me faut un redeploiement de l'application pour prendre en consideration ce changement.

    c'est comme si y' un cache qui garde les anciens valeurs en memoire??

    Comment remedier à ça?


    Merci d'avance


    NB: j'utilise MyEclipse avec tomcat comme serveur Web.

  2. #2
    Membre Expert Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Par défaut
    Es-tu sur que tu commit bien les données? Qu'appelles-tu mise à jour de la table? Changement des types de tables? Ou seulement rajout/suppression de données?

  3. #3
    Membre émérite Avatar de g_rare
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 608
    Par défaut
    Merci d'éviter les double-post !
    Tu peux modifier un de tes messages après l'avoir mis en ligne (cf. bouton "Editer")...


  4. #4
    Membre expérimenté Avatar de a.snaps
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 209
    Par défaut
    Tu veux dire que tu mets à jour la DB directement et non via Hibernate j'imagine?
    Si tel est le cas, tu dois invalider ton cache niveau 2 voir:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    org.hibernate.SessionFactory.evict()
    Alex

  5. #5
    Membre averti
    Inscrit en
    Février 2005
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 27
    Par défaut
    je parle d'ajout, modificatin et suppression des données et aussi à travers hibernate.

    et bien sur j'utilise le commit.

    pr le moment je suis obligé de redeployer apres chaq insertion ou modification des données.

  6. #6
    Membre expérimenté Avatar de a.snaps
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 209
    Par défaut
    Citation Envoyé par tidar
    pr le moment je suis obligé de redeployer apres chaq insertion ou modification des données.
    Si tu persistes une nouvelle entité ou que tu mets à jour une entité via Hibernate, le cache est mis à jour/invalidé dès que ta tx commit. Les modifications sont donc visible aux yeux des autres session hibernate.
    Peux-tu être plus précis dans l'énoncé de ton problème,
    Alex

  7. #7
    Membre averti
    Inscrit en
    Février 2005
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 27
    Par défaut
    oui normalement, car j'avais fais des exemple avec hibernate mais cette fois-ci avec mySQL et ça marche à merveille! Peut etre c'est un probleme lié à MS SQL ou au JDBC... Je vais chercher la dessus!

    Merci pour votre intervention.

  8. #8
    Membre expérimenté Avatar de a.snaps
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 209
    Par défaut
    Pense pas!
    Je n'ai jamais utiliser Hibernate avec MySQL, mais je ne vois pas véritablement ce que cela aurait comme rapport avec le problème que tu décris... La seul chose qui change, c'est le pilote JDBC et le Dialect qu'Hibernate utilisera pour pondre des Query SQL
    Alex

  9. #9
    Membre averti
    Inscrit en
    Février 2005
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 27
    Par défaut
    Je vais essayer de donner plus de détail. En fait Ma base de données est un peu bizzarre et je suis obligée de la garder telle qu'elle est! La table que je gere contient 2 colonnes et chaque colonne est formée de plusieurs champs qu'on distingue par le nombre de caracteres. bref pour distinguer les differents champs j'utilise des Vues.

    Avec Hibernate, j'ai créé 3 objets, l'un correspond à la table, les 2 autres correspondent à 2 vues. Le premier je l'utilise pour l'insertion dans la bases de donnée, les autres pour l'affichage.

    Mon probleme c'est surtout au niveau de l'insertion..

    En fait j'arrive pas à délimiter mon probleme, car j'utilise aussi struts... Je sais pas si c'un pb d'hibernate ou de struts.

    j'ai utilisé le meme code avec une table normale sans passer par des vue et ça marche tres bien.


    voici la structure de ma table

    table(id(char(30)) , data(char(300)))

    je peux inserer ("code nom prenom", "age fonction adresse ville telephone fax...")

  10. #10
    Membre expérimenté Avatar de a.snaps
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 209
    Par défaut
    Je suis désolé, mais tu t'exprimes très mal et de façon incomplète...
    Voici où j'en suis dans la compréhension de ton problème:
    1. L'on a une table A et de 2 views (B et C);
    2. Ces 2 views sont des queries sur la table A;
    3. Le tout est mapper à 3 classes avec Hibernate;
    4. La classe A qui est mappé à la table A et ne sert uniquement qu'à l'insertion;
    5. Les deux autres classes (B et C) mappées aux views et ne sont que lues;
    6. Lorsque tu modifies la table via des instances de la classe A, les instances de classe B et C ne reflète pas ces modifications.

    Exacte?

    Si oui, merci de répondre à ces questions:
    1. Si tu instancies un objet de classe A, reflète-t-il les modifications correctement?
    2. Si tu modifies une instance de classes A AVANT d'avoir instancié des objets de classes B ou C (dans un environnement fraîchement démarré) les modifications sont-elles présentent?
    3. As-tu configurer un cache niveau 2 dans Hibernate?
    4. Si oui, qu'elle est le TTL (time to live) des instances de classes B ou C?
    5. As-tu essayés d'invalider le cache (voir plus haut) après avoir fait des modifications? Cela aide-t-il?


    Alex

  11. #11
    Membre averti
    Inscrit en
    Février 2005
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 27
    Par défaut
    voici les reponses pr tes questions:

    1-oui

    2-oui si l'environnement comme t'a dis est fraichement demarré, mais par la suite ça se deconne.

    pour les questions 3-4-5 je peux pas repondre car je n'utilise pas le cache niveau 2.

    Peut tu me dire comment le configurer?

    j'ai fais des recherche la dessus mais je ne vois pas les choses en clair

  12. #12
    Membre expérimenté Avatar de a.snaps
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 209
    Par défaut
    Je pense que tu l'utiliser, car si tu n'en utilisais pas, Hibernate retournerais à la DB pour chaque requête...
    Essaie d'afficher l'instance loader, puis fait un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    session.refresh(instance);
    Le résultat obtenu est-il le même que si tu fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sessionFactory.evict(ClassB.class);
    Alex

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

Discussions similaires

  1. [AJAX] Rafraichissement des données sur la page
    Par TreizeSegments dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 17/05/2006, 18h32
  2. Rafraichissement des données avec ADOConnection -SQL Server
    Par newfsch dans le forum Bases de données
    Réponses: 4
    Dernier message: 04/01/2006, 21h48
  3. [Form/ssForm] rafraichissement des données
    Par michaelbob dans le forum Access
    Réponses: 3
    Dernier message: 14/10/2005, 11h05
  4. Vitesse de rafraichissement des données
    Par StarMusic dans le forum Bases de données
    Réponses: 2
    Dernier message: 30/09/2005, 10h20
  5. question sur le rafraichissement des données dans la base
    Par vbcasimir dans le forum Bases de données
    Réponses: 8
    Dernier message: 06/06/2005, 12h44

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