-->
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.  [ 4 posts ] 
Author Message
 Post subject: [debutant] Problème pour commiter
PostPosted: Mon Nov 21, 2005 12:46 pm 
Newbie

Joined: Mon Nov 21, 2005 12:28 pm
Posts: 4
Bonjour,

Je suis en train de refondre mon application web avec Hibernate, pour cela je fais des tests avec celui-ci. Mon environnement est le suivante : WSAD, bases de données DB2 sur AS400.
J'ai crée une simple table à 4 colonnes que j'ai appelé PERSONNE. Cette table possède 4 colonnes (ID, NOM, PRENOM, AGE).

J'essaye de rentrer 2 personne dans cette table, toutes les initialisations se déroulent bien, mais au moment tu commit, il y a un problème pourtant j'ai suivi toutes les procédures à la lettre.

Ci-joint une copie de ma console
Code:
Hibernate: insert into TSTCOMM.PERSONNE (NOM, PRENOM, AGE, ID) values (?, ?, ?, ?)
[21/11/05 17:11:45:614 CET] 5428b09c JDBCException W org.hibernate.util.JDBCExceptionReporter  SQL Error: -7008, SQLState: 55019
[21/11/05 17:11:45:614 CET] 5428b09c JDBCException E org.hibernate.util.JDBCExceptionReporter  [SQL7008] La table PERSONNE de TSTCOMM est incorrecte pour cette opération.
[21/11/05 17:11:45:614 CET] 5428b09c AbstractFlush E org.hibernate.event.def.AbstractFlushingEventListener  Could not synchronize database state with session
[21/11/05 17:11:45:629 CET] 5428b09c AbstractFlush E org.hibernate.event.def.AbstractFlushingEventListener  TRAS0014I: L'exception suivante a été consignée : org.hibernate.exception.GenericJDBCException: could not insert: [fr.nle.viveo.test.Personne]
   at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:91)
   at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:79)
   at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
   at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2077)
   at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2426)
   at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:51)
   at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:243)
   at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:227)
   at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:140)
   at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:296)
   at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
   at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:905)
   at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:345)
   at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
   at fr.nle.viveo.test.Tests.WrightingTestInBdd(Tests.java:41)
   at fr.nle.viveo.test.actions.WrigthInBddAction.execute(WrigthInBddAction.java:35)
   at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
   at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
   at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
   at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
   at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
   at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
   at com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313)
   at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
   at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
   at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
   at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
   at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:974)
   at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:555)
   at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:200)
   at com.ibm.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java:119)
   at com.ibm.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:276)
   at com.ibm.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:71)
   at com.ibm.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:182)
   at com.ibm.ws.webcontainer.oselistener.OSEListenerDispatcher.service(OSEListener.java:334)
   at com.ibm.ws.webcontainer.http.HttpConnection.handleRequest(HttpConnection.java:56)
   at com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:618)
   at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:443)
   at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:593)
Caused by: java.sql.SQLException: [SQL7008] La table PERSONNE de TSTCOMM est incorrecte pour cette opération.
   at com.ibm.as400.access.JDError.throwSQLException(JDError.java:388)
   at com.ibm.as400.access.AS400JDBCStatement.commonExecute(AS400JDBCStatement.java:640)
   at com.ibm.as400.access.AS400JDBCPreparedStatement.executeUpdate(AS400JDBCPreparedStatement.java:949)
   at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.executeUpdate(WSJdbcPreparedStatement.java:469)
   at org.hibernate.jdbc.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:23)
   at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2061)
   ... 37 more
.
                                 org.hibernate.exception.GenericJDBCException: could not insert: [fr.nle.viveo.test.Personne]
   at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:91)
   at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:79)
   at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
   at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2077)
   at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2426)
   at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:51)
   at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:243)
   at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:227)
   at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:140)
   at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:296)
   at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
   at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:905)
   at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:345)
   at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
   at fr.nle.viveo.test.Tests.WrightingTestInBdd(Tests.java:41)
   at fr.nle.viveo.test.actions.WrigthInBddAction.execute(WrigthInBddAction.java:35)
   at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
   at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
   at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
   at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
   at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
   at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
   at com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313)
   at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
   at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
   at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
   at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
   at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:974)
   at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:555)
   at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:200)
   at com.ibm.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java:119)
   at com.ibm.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:276)
   at com.ibm.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:71)
   at com.ibm.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:182)
   at com.ibm.ws.webcontainer.oselistener.OSEListenerDispatcher.service(OSEListener.java:334)
   at com.ibm.ws.webcontainer.http.HttpConnection.handleRequest(HttpConnection.java:56)
   at com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:618)
   at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:443)
   at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:593)
Caused by: java.sql.SQLException: [SQL7008] La table PERSONNE de TSTCOMM est incorrecte pour cette opération.
   at com.ibm.as400.access.JDError.throwSQLException(JDError.java:388)
   at com.ibm.as400.access.AS400JDBCStatement.commonExecute(AS400JDBCStatement.java:640)
   at com.ibm.as400.access.AS400JDBCPreparedStatement.executeUpdate(AS400JDBCPreparedStatement.java:949)
   at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.executeUpdate(WSJdbcPreparedStatement.java:469)
   at org.hibernate.jdbc.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:23)
   at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2061)
   ... 37 more

[21/11/05 17:11:45:629 CET] 5428b09c LocalTranCoor E WLTC0033E: La ressource jdbc/Quebec a été annulée lors du nettoyage d'un LocalTransactionContainment non résolu.
[21/11/05 17:11:45:629 CET] 5428b09c LocalTranCoor E WLTC0032E: Une ou plusieurs ressources ont été annulées. Un LocalTransactionContainment comporte une opération d''annulation non résolue.
[21/11/05 17:11:45:645 CET] 5428b09c WebAppTransac E WTRN0043I: Transaction locale annulée par l'appel de setRollbackOnly.
[21/11/05 17:11:45:645 CET] 5428b09c WebGroup      E SRVE0026E: [Erreur de servlet]-[LocalTransaction rolled-back due to setRollbackOnly]: com.ibm.ws.LocalTransaction.RolledbackException
   at com.ibm.ws.LocalTransaction.LocalTranCoordImpl.cleanup(LocalTranCoordImpl.java:1073)
   at com.ibm.ws.webcontainer.webapp.WebAppTransactionCollaborator.postInvoke(WebAppTransactionCollaborator.java:249)
   at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:699)
   at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:200)
   at com.ibm.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java:119)
   at com.ibm.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:276)
   at com.ibm.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:71)
   at com.ibm.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:182)
   at com.ibm.ws.webcontainer.oselistener.OSEListenerDispatcher.service(OSEListener.java:334)
   at com.ibm.ws.webcontainer.http.HttpConnection.handleRequest(HttpConnection.java:56)
   at com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:618)
   at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:443)
   at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:593)



Ci-dessous ma classe personne :


Code:
/*
* Créé le 14 nov. 05
*
* Pour changer le modèle de ce fichier généré, allez à :
* Fenêtre>Préférences>Java>Génération de code>Code et commentaires
*/
package fr.nle.viveo.test;

/**
* @author alecomte
*
* Pour changer le modèle de ce commentaire de type généré, allez à :
* Fenêtre>Préférences>Java>Génération de code>Code et commentaires
*/
public class Personne {
   
   private int id;
   private String nom;
   private String prenom;
   private int age;
   
   
   /**
    * @return
    */
   public int getId() {
      return id;
   }

   /**
    * @return
    */
   public String getNom() {
      return nom;
   }

   /**
    * @return
    */
   public String getPrenom() {
      return prenom;
   }

   /**
    * @param i
    */
   public void setId(int i) {
      id = i;
   }

   /**
    * @param string
    */
   public void setNom(String string) {
      nom = string;
   }

   /**
    * @param string
    */
   public void setPrenom(String string) {
      prenom = string;
   }
   
   /**
    * @return
    */
   public int getAge() {
      return age;
   }

   /**
    * @param i
    */
   public void setAge(int i) {
      age = i;
   }

}


Ci-dessous le mapping de ma classe personne

Code:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping
    PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">

<hibernate-mapping>

    <class name="fr.nle.viveo.test.Personne" table="PERSONNE">
        <id name="id" type="integer" unsaved-value="null">
         <column name="ID" sql-type="int(4)"/>
         <generator class="increment" />
      </id>
        <property name="nom" type="string">
           <column name="NOM"/>
        </property>
        <property name="prenom" type="string">
           <column name="PRENOM"/>
        </property>
        <property name="age" type="integer">
           <column name="AGE"/>
        </property>
    </class>

</hibernate-mapping>


Ci-dessous ma classe tests qui va écrire dans la table

Code:
package fr.nle.viveo.test;

import org.hibernate.*;
import fr.nle.viveo.util.*;
import java.util.Iterator;


public class Tests {
   
public Tests(){}

public void WrightingTestInBdd()
   throws HibernateException {
   
      System.out.println("Enter WrightingTestInBdd...");
      Session session = HibernateUtil.currentSession();
      System.out.println("current Session OK");
   
      Transaction tx = session.beginTransaction();
      System.out.println("transaction OK");
      
      try {
         Personne personne1 = new Personne();
         personne1.setNom("Dupont");
         personne1.setPrenom("Jean");
         personne1.setAge(44);
         session.save(personne1);
         System.out.println("OK");
      
         Personne personne2 = new Personne();
         personne2.setNom("Lambert");
         personne2.setPrenom("Julie");
         personne2.setAge(27);
         session.save(personne2);
         System.out.println("OK");
         } catch (Exception ex) {
               System.out.println("Problème de configuration : " + ex.getMessage());
            }
      
         
      tx.commit();

      HibernateUtil.closeSession();
      System.out.println("... Exit WrightingTestInBdd");
}

}



Il semblererait que le trasfert est possible mais ke ma table (ou bien mon insertion de données) ne soit pas bien ordonée (et vice versa)
MErci de votre aide

_________________
Si vous n'avez pas peur, c'est que vous êtes déjà mort...


Top
 Profile  
 
 Post subject:
PostPosted: Tue Nov 22, 2005 7:10 am 
Newbie

Joined: Mon Nov 21, 2005 12:28 pm
Posts: 4
Il semblerait que ma table sur mon AS400 soit dans un "état incorrect", peut être un problème de configuration, en tout cas y'a un truc qui cloche mais je ne sais pas...

_________________
Si vous n'avez pas peur, c'est que vous êtes déjà mort...


Top
 Profile  
 
 Post subject:
PostPosted: Tue Nov 22, 2005 7:32 am 
Newbie

Joined: Mon Nov 21, 2005 12:28 pm
Posts: 4
Je fais différents tests (normal) et il semblerait que le problème vient du <generator class="" /> pour l'id...

_________________
Si vous n'avez pas peur, c'est que vous êtes déjà mort...


Top
 Profile  
 
 Post subject:
PostPosted: Thu Dec 29, 2005 2:23 pm 
Beginner
Beginner

Joined: Thu Jun 30, 2005 4:20 am
Posts: 40
Location: Vienna
Bonjour,

je vois l'exception suivante dans votre code:

Code:
Une ou plusieurs ressources ont été annulées. Un LocalTransactionContainment comporte une opération d''annulation non résolue.


Moi j'ai eu le meme erreur. La raison pour l'erreur c'était le driver oracle. Quand j'ai remplacé le driver oracle version 9.2.0.3 avec oracle 10, tout ca marchait bien.

Peut-etre si vous trouvez un nouvel driver pour DB2, ca pourrait marcher.


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

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.