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 :

resoudre exception StaleStateException


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    331
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 331
    Par défaut resoudre exception StaleStateException
    Bonjour ,
    J'esaye de faire un update mais je recupere cette exception

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    org.hibernate.StaleStateException: Batch update returned unexpected row count from update: 0 actual row count: 0 expected: 1
    Si vous pouvez me donnez un coup de main, j'ai essayé plein de choses mais rien ne marche

    voici le fichier de mapping
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
     
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <hibernate-mapping>
    <!-- 
            Auto-generated mapping file from
            the hibernate.org cfg2hbm engine
    -->
      <class name="com.eurecia.backoffice.ListValue" table="LIST_VALUE_EA">
     
        <composite-id name="id" class="com.eurecia.backoffice.ListValueId" >
          <key-property name="type" type="java.lang.String">
            <column name="TYPE_LIST_VALUE" scale="50" precision="0" not-null="true" sql-type="varchar" />
          </key-property>
          <key-property name="value" type="java.lang.String">
          	<column name="ID_VALUE" scale="50" precision="0" not-null="true" sql-type="varchar" />
          </key-property>
          <key-property name="idCompany" type="java.lang.String">
            <column name="ID_COMPANY" scale="50" precision="0" not-null="true" sql-type="varchar" />
          </key-property>
     
        </composite-id>
     
        <property name="num" type="java.lang.Integer">
          	<column name="NUM_VALUE" scale="4" precision="0" not-null="true" sql-type="decimal" />
        </property>
        <property name="default" type="java.lang.Boolean">
          	<column name="DEFAULT_VALUE" scale="1" precision="0" not-null="true" sql-type="decimal" />
        </property>
     
        <property name="userCreate" type="java.lang.String">
          	<column name="USER_CREATE" scale="255" precision="0" not-null="true" sql-type="varchar" />
        </property>
        <property name="dateCreate" type="java.util.Date">
          	<column name="DATE_CREATE" scale="19" precision="0" not-null="true" sql-type="datetime" />
        </property>
        <property name="userUpdate" type="java.lang.String">
          	<column name="USER_UPDATE" scale="255" precision="0" not-null="false" sql-type="varchar" />
        </property>
        <property name="dateUpdate" type="java.util.Date">
          	<column name="DATE_UPDATE" scale="19" precision="0" not-null="false" sql-type="datetime" />
        </property>
     
        <map name="descr" table="LIST_VALUE_DESCR_EA" cascade="all" lazy="false">
        		<key>
        			<column name="TYPE_LIST_VALUE" scale="50" precision="0" not-null="true" sql-type="varchar" />
    				<column name="ID_VALUE" scale="50" precision="0" not-null="true" sql-type="varchar" />
    				<column name="ID_COMPANY" scale="50" precision="0" not-null="true" sql-type="varchar" />
        		</key>
        		<map-key column="LOCALE" type="java.lang.String" length="10"/>
        		<composite-element class="com.eurecia.backoffice.Description">
    				<property name="shortDescription" type="java.lang.String">
    					<column name="SDESCR_VALUE" scale="50" precision="0" not-null="true" sql-type="varchar" />
    				</property>
    				<property name="longDescription" type="java.lang.String">
    					<column name="LDESCR_VALUE" scale="2000" precision="0" not-null="false" sql-type="varchar" />
    				</property>
    				<property name="comment" type="java.lang.String">
    					<column name="COMMENT_VALUE" scale="8000" precision="0" not-null="false" sql-type="varchar" />
    				</property>
        		</composite-element>
        </map>
     
      </class>
    </hibernate-mapping>
    voici la fonction update
    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 void update(PersistentObject object) throws PersistanceException, DuplicateEntryException {
     
            Session session = null ;
            Transaction transaction = null;
     
            try {
                session = HibernateSessionFactory.currentSession();
                transaction = session.beginTransaction();
                session.update(object) ;
               transaction.commit();
     
     
     
            } catch (ConstraintViolationException cve) {
                rollback(transaction);
     
                // duplicate item
                if (cve.getErrorCode()==1062)
     
    				throw new DuplicateEntryException(cve.getMessage());
     
                // persistance error
    			throw new PersistanceException(cve.getMessage(),cve);
     
    		} catch (Exception he) {
    		    rollback(transaction);
                throw new PersistanceException(he.getMessage(),he);
    		}
    		finally
    		{
    			try {HibernateSessionFactory.closeSession(); } catch (Exception he) {}
    		}
    	}
    Je prends toute sorte de suggestions.
    Et s'il manque des infos n'hesitez pas.

    Merci.

  2. #2
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Par défaut
    Déjà quand tu crées une Exception à partir d'une autre, ne fais pas new Exception(e.getMessage()) sinon tu casses la stack, mais plutôt new Exception(e) comme ça tu auras une root cause dans ta stack.

    Là, pour savoir ce qui ne va pas, c'est pas évident du tout. Rien ne me semble incorrect dans ce que tu as. Après il faut voir ce que tu fais entre l'ouverture de la Session et son flush et voir pourquoi il a un conflit ...

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    331
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 331
    Par défaut
    Merci pour ta reponse, mais je n'arrive toujours pas a localiser le probleme.
    De plus je n'ai pas de flush dans la session.
    et aussi, j'ai fais le test avec d'autres object et ca marche, pourtant a vue d'oeil il n'ya aucune difference, je ne comprends vraiment pas.
    ya t'il d'autres bouts de code que je pourrais t'envoyer.
    Merci.
    A bientot j'espere

  4. #4
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Par défaut
    Pas évident de dire à priori quel code pourrait m'aider

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    331
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 331
    Par défaut
    Tout remarche comme avant.
    Je suis desolé mais je n'ai pas vu d'ou venait le probleme .
    Merci a chtiq.

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

Discussions similaires

  1. [Débutant] Exception non gérée impossible a resoudre
    Par Attila54 dans le forum VB.NET
    Réponses: 4
    Dernier message: 09/05/2012, 19h50
  2. Resoudre une exception
    Par siempre dans le forum C
    Réponses: 6
    Dernier message: 05/10/2009, 22h21
  3. Réponses: 2
    Dernier message: 30/01/2009, 09h14
  4. Resoudre exception java.lang,OutOfMemory
    Par Battosaiii dans le forum Langage
    Réponses: 9
    Dernier message: 02/08/2006, 17h04
  5. Pouvez vous m'aider a resoudres ces 3 exercices
    Par algorithmique dans le forum Algorithmes et structures de données
    Réponses: 11
    Dernier message: 09/08/2002, 17h26

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