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 :

Insert


Sujet :

Hibernate Java

  1. #1
    Membre régulier
    Inscrit en
    Juillet 2003
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 229
    Points : 90
    Points
    90
    Par défaut Insert
    Bonjour,


    Je n'arrive pas avec hibernate à insérer dans une table contenant une clé primaire non null:

    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
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    [17/05/04 23:01:45:481 CEST]  a6744b2 JDBCException W net.sf.hibernate.util.JDBCExceptionReporter  SQL Error: -10, SQLState: 23000
    [17/05/04 23:01:45:491 CEST]  a6744b2 JDBCException E net.sf.hibernate.util.JDBCExceptionReporter  Try to insert null into a non-nullable column: column: ID table: PRODUCTS in statement [insert into products (name, price, amount, id) values (?, ?, ?, null)]
    [17/05/04 23:01:45:521 CEST]  a6744b2 JDBCException W net.sf.hibernate.util.JDBCExceptionReporter  SQL Error: -10, SQLState: 23000
    [17/05/04 23:01:45:661 CEST]  a6744b2 JDBCException E net.sf.hibernate.util.JDBCExceptionReporter  Try to insert null into a non-nullable column: column: ID table: PRODUCTS in statement [insert into products (name, price, amount, id) values (?, ?, ?, null)]
    [17/05/04 23:01:45:721 CEST]  a6744b2 JDBCException E net.sf.hibernate.util.JDBCExceptionReporter  could not insert: [hibernate.test.Products]
    [17/05/04 23:01:45:751 CEST]  a6744b2 JDBCException E net.sf.hibernate.util.JDBCExceptionReporter  TRAS0014I: L'exception suivante a été consignée : java.sql.SQLException: Try to insert null into a non-nullable column: column: ID table: PRODUCTS in statement [insert into products (name, price, amount, id) values (?, ?, ?, null)]
    	at org.hsqldb.jdbcDriver.throwError(Unknown Source)
    	at org.hsqldb.jdbcPreparedStatement.executeUpdate(Unknown Source)
    	at net.sf.hibernate.persister.EntityPersister.insert(EntityPersister.java:527)
    	at net.sf.hibernate.persister.EntityPersister.insert(EntityPersister.java:432)
    	at net.sf.hibernate.impl.ScheduledIdentityInsertion.execute(ScheduledIdentityInsertion.java:29)
    	at net.sf.hibernate.impl.SessionImpl.doSave(SessionImpl.java:906)
    	at net.sf.hibernate.impl.SessionImpl.doSave(SessionImpl.java:839)
    	at net.sf.hibernate.impl.SessionImpl.saveWithGeneratedIdentifier(SessionImpl.java:757)
    	at net.sf.hibernate.impl.SessionImpl.save(SessionImpl.java:720)
    	at hibernate.test.ProductsAction.execute(ProductsAction.java:239)
    	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.doPost(ActionServlet.java:525)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
    	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:948)
    	at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:530)
    	at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:176)
    	at com.ibm.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java:79)
    	at com.ibm.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:201)
    	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:610)
    	at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:435)
    	at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:593)
    .
                                     java.sql.SQLException: Try to insert null into a non-nullable column: column: ID table: PRODUCTS in statement [insert into products (name, price, amount, id) values (?, ?, ?, null)]
    	at org.hsqldb.jdbcDriver.throwError(Unknown Source)
    	at org.hsqldb.jdbcPreparedStatement.executeUpdate(Unknown Source)
    	at net.sf.hibernate.persister.EntityPersister.insert(EntityPersister.java:527)
    	at net.sf.hibernate.persister.EntityPersister.insert(EntityPersister.java:432)
    	at net.sf.hibernate.impl.ScheduledIdentityInsertion.execute(ScheduledIdentityInsertion.java:29)
    	at net.sf.hibernate.impl.SessionImpl.doSave(SessionImpl.java:906)
    	at net.sf.hibernate.impl.SessionImpl.doSave(SessionImpl.java:839)
    	at net.sf.hibernate.impl.SessionImpl.saveWithGeneratedIdentifier(SessionImpl.java:757)
    	at net.sf.hibernate.impl.SessionImpl.save(SessionImpl.java:720)
    	at hibernate.test.ProductsAction.execute(ProductsAction.java:239)
    	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.doPost(ActionServlet.java:525)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
    	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:948)
    	at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:530)
    	at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:176)
    	at com.ibm.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java:79)
    	at com.ibm.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:201)
    	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:610)
    	at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:435)
    	at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:593)

    Merci
    hocine

  2. #2
    Membre du Club
    Inscrit en
    Avril 2003
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 37
    Points : 41
    Points
    41
    Par défaut
    donnes d'abord le mapping de ta classe Product et la structure SQL de ta table.
    ...

  3. #3
    Membre habitué Avatar de meufeu
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    355
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 355
    Points : 166
    Points
    166
    Par défaut
    Il faut que tu gère ta clef primaire
    - soit tu insere un id
    - soit tu fais en sorte que hibernate le fassent tout seul en le spécifiant dans le mapping comme ds l'exemple de code ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <class name="business.hibernate.HbRealmUser" table="realm_users">
      <id name="id" column="id_realm_user" type="int">
        <generator class="net.sf.hibernate.id.TableHiLoGenerator">
          <param name="table">uid_table</param>
          <param name="column">next_hi</param>
        </generator>
      </id>
     <discriminator/>
    Pour cela tu as juste a recopier texto les lignes ici en modifiant le nom de ta classe, de ta table et le nom de ta clef primaire ...

    Hope it helps

  4. #4
    Membre régulier
    Inscrit en
    Juillet 2003
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 229
    Points : 90
    Points
    90
    Par défaut
    Merci pour votre reponse mais a quoi correspond

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <param name="table">uid_table</param> 
          <param name="column">next_hi</param>
    hocine

  5. #5
    Membre habitué Avatar de meufeu
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    355
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 355
    Points : 166
    Points
    166
    Par défaut
    Ce sont les paramètres hibernate pour la gestion automatique des clefs primaires.

  6. #6
    Membre régulier
    Inscrit en
    Juillet 2003
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 229
    Points : 90
    Points
    90
    Par défaut
    Merci mais il ne reconnait pas les parametres :

    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
    [19/05/04 22:17:59:586 CEST] 2bf490ba JDBCException W net.sf.hibernate.util.JDBCExceptionReporter  SQL Error: -22, SQLState: S0002
    [19/05/04 22:17:59:586 CEST] 2bf490ba JDBCException E net.sf.hibernate.util.JDBCExceptionReporter  Table not found: UID_TABLE in statement [select next_hi from uid_table]
    [19/05/04 22:17:59:596 CEST] 2bf490ba JDBCException E net.sf.hibernate.util.JDBCExceptionReporter  Could not save object
    [19/05/04 22:17:59:606 CEST] 2bf490ba JDBCException E net.sf.hibernate.util.JDBCExceptionReporter  TRAS0014I: L'exception suivante a été consignée : java.sql.SQLException: Table not found: UID_TABLE in statement [select next_hi from uid_table]
    	at org.hsqldb.jdbcDriver.throwError(Unknown Source)
    	at org.hsqldb.jdbcPreparedStatement.<init>(Unknown Source)
    	at org.hsqldb.jdbcConnection.prepareStatement(Unknown Source)
    	at net.sf.hibernate.id.TableGenerator.generate(TableGenerator.java:91)
    	at net.sf.hibernate.id.TableHiLoGenerator.generate(TableHiLoGenerator.java:59)
    	at net.sf.hibernate.impl.SessionImpl.saveWithGeneratedIdentifier(SessionImpl.java:747)
    	at net.sf.hibernate.impl.SessionImpl.save(SessionImpl.java:720)
    	at hibernate.test.ProductsAction.execute(ProductsAction.java:235)
    	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.doPost(ActionServlet.java:525)
    hocine

  7. #7
    Membre habitué Avatar de meufeu
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    355
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 355
    Points : 166
    Points
    166
    Par défaut
    Ah oui

    Il ne trouve pas la table uid_table
    Désolé moi je génère ma bdd a partir du mapping
    Essaie comme cela ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    		<id name="id" column="id_user" type="int">
    			<generator class="hilo"/>
    		</id>

    Hope it helps

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

Discussions similaires

  1. [DOM] [Xerces] Insertion d'une entité
    Par Traroth dans le forum Format d'échange (XML, JSON...)
    Réponses: 10
    Dernier message: 19/05/2008, 09h28
  2. Bulk insert et caractère accentué
    Par slc dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 22/04/2003, 12h52
  3. probleme d'insertion d'un Float
    Par neness dans le forum Débuter
    Réponses: 3
    Dernier message: 07/01/2003, 12h32
  4. [Postgresql] pb lors d'insertion de données
    Par bob20000 dans le forum Requêtes
    Réponses: 8
    Dernier message: 04/11/2002, 15h33
  5. Réponses: 4
    Dernier message: 28/09/2002, 00h00

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