-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 1 post ] 
Author Message
 Post subject: Problème de persistence de données
PostPosted: Sun Nov 21, 2010 2:21 pm 
Newbie

Joined: Sun Nov 21, 2010 2:20 pm
Posts: 1
Bonjour à tous,

Je développe actuellement une application JEE utilisant Hibernate, et je suis confronté à un problème qui m'étonne et me dépasse.

Je ne fais mes tests qu'avec un seul utilisateur, ma base est sous mysql v5, j'utilise glassfish 3.0.1.

J'ai une table nommée 'champperso', à laquelle j'ajoute une entrée via le code suivant :

Code:
Session session = DatabaseSessionFactory.getSession();
                Transaction t = session.beginTransaction();
                try {   
                    Champperso p = new Champperso();
                    p.setDescription(nom);
                    session.save(p);
                    t.commit();
                    //Enregistrement OK
                }
                catch(Exception e) {
                    //Erreur d'enregistrement
                    t.rollback();
                }
                finally {
                    session.close();
                }


Les données sont bien enregistrées, et les modifications sont effectuées en base.



Ensuite, dans d'autres pages je veux charger et afficher mes champs perso.
J'utilise alors la fonction suivante pour les récupérer :

Code:
public static List<Champperso> loadChamppersos() {
Session session = DatabaseSessionFactory.getSession();
         List<Champperso> result = null;
         try {
            result = session.createCriteria(Champperso.class).addOrder(Order.asc("description")).list();
         }
         finally {
             session.close();
         }
return result;



Cette fonction doit me renvoyer la liste des entrées de la table champperso.

Le problème est que si j'ouvre la page plusieurs fois d'affilées, certaines fois je vais avoir tous les champs perso, et d'autres fois j'obtiens uniquement ceux qui étaient en base au moment du déploiement de mon application.

C'est à dire que si j'ajoute un champ perso et que j'affiche ma liste ensuite, il se peut que mon nouveau champ perso ne soit pas dans la liste.
Je recharge la page (sans rien toucher d'autre), et cette fois il y sera. Etc.

Je ne vois vraiment pas d'où vient ce problème, que je rencontre aussi dans d'autres tables et d'autres pages.

La fonction
Code:
DatabaseSessionFactory.getSession();

ouvre simplement une nouvelle session et me la renvoie. Je l'utilise ensuite (je pense correctement), je n'oublie pas de la fermer après utilisation.

Toute aide serait appréciée, car je suis complètement dans une impasse.

Merci d'avance à tous,
Antoine.


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 1 post ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.