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 :

StaleStateException lors du commit


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 5
    Par défaut StaleStateException lors du commit
    Bonjour,

    celà fait maintenant quelques jours que je suis sur un problème de sauvegarde de données via hibernate.

    L'exception est levée lorsque je fait un commit(). Voici le code source.
    nom de l'exception:StaleStateException.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    public String verifUser(){
     
    		Session session = HibernateUtil.getSessionFactory();
    		session.beginTransaction();		
     
    		users=new Users();
    		users = (Users)session.get(users.getClass(),login,LockMode.UPGRADE);
     
     
    		if(users != null) {
     
    			if(users.getPwd().compareTo(pwd)==0){	
    				//session.createQuery("UPDATE Users us set us.connected ='Y' where us.user='"+users.getUser()+"'").executeUpdate();
    				//session.createSQLQuery("UPDATE USERS set connected ='Y' where user='"+users.getUser()+"'").executeUpdate();
     
    				users.setConnected('Y');				
    				session.getTransaction().commit();
    				addMovement("IDEN");								
    				HibernateUtil.getSessionFactory().clear();		
    				return "login";
    			}
    			else {
    				setErrorMsg("PASSWORD IS NOT CORRECT, VERIFY PLEASE");
    				return "null";
    			}
    		}
     
    		else {
    			setErrorMsg("LOGIN IS NOT CORRECT, VERIFY PLEASE");
    			//users = new Users();
    			HibernateUtil.getSessionFactory().clear();
    			return "null";	
    		}	
    	}
    Chaque utilisateur qui se connecte fera appel à cette méthode. Le problème se situe lorsque je veux modifer le status de cette utilisateur (users.setConnected('Y') et que je fait le commit() juste après.

    J'espère que vous me donnerez une petite explication sur ce problème.
    Merci d'avance.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    233
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2007
    Messages : 233
    Par défaut stale exception=modif concurrente
    Ton exception est levee si un object a ete modifie par quelqu un s qutre entre le moment ou tu l a chagre et le moment ou tu sauve

    ex

    user A charge l objet
    user B charge le meme objet
    user b sauve ses modif sur l object
    user A veut sauver ses modif et se prend cette exception (normal, sinon les modif de B seraient perdues)

    pour ton code, il me semble que tu devrait fermer les transaction et la session apres tes modifs (c ets peut etre fait plus loin hors de l extrait qui tu as mit)

    Sinon je parie que c est ca, tu ne ferme pas la session et au 2eme appel tu te prend cette exception

  3. #3
    Futur Membre du Club
    Inscrit en
    Février 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 5
    Par défaut
    Merci pour ton aide mais cela n'a pas fonctionné, exception: session is closed!

    Donc, je n'ai toujours pas trouvé de solution à mon problème.

  4. #4
    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
    Si tu as l'erreur session is closed c'est que tu n'ouvres pas la session!
    Ou bien qu'elle est fermé à un mauvaise endroit. Avec si peux de code on ne peux pas vraiment t'aider avec ce genre d'erreur.

Discussions similaires

  1. subversion : problème lors du commit
    Par thor76160 dans le forum Administration système
    Réponses: 20
    Dernier message: 30/11/2011, 17h14
  2. Réponses: 1
    Dernier message: 02/10/2009, 11h54
  3. Réponses: 0
    Dernier message: 01/06/2009, 17h02
  4. Réponses: 1
    Dernier message: 26/06/2007, 16h33

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