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 :

[HIBERNATE] Problème d'insert


Sujet :

Hibernate Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2005
    Messages : 73
    Points : 56
    Points
    56
    Par défaut [HIBERNATE] Problème d'insert
    Bonjour,

    C'est sans doute une question de débutant en hibernate, mais voilà je n'arrive décidement pas à insérer quoique ce soit dans ma table dans une DB MySQL 5 en innodb...

    Voici le pojo
    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
     
    package hibernate;
     
    /**
     * Items generated by hbm2java
     */
     
    public class Items  implements java.io.Serializable {
     
     
        // Fields    
     
         private int itemId;
         private int itemTypeId;
         private String itemName;
     
     
        // Constructors
         public Items(int id, int itemTypeId, String itemName){
     
        	 this.itemId = id;
        	 this.itemTypeId = itemTypeId;
        	 this.itemName = itemName;
         }
     
        /** default constructor */
        public Items() {
        }
     
     
        // Property accessors
     
        public int getItemId() {
            return this.itemId;
        }
     
        public void setItemId(int itemId) {
            this.itemId = itemId;
        }
     
        public int getItemTypeId() {
            return this.itemTypeId;
        }
     
        public void setItemTypeId(int itemTypeId) {
            this.itemTypeId = itemTypeId;
        }
     
        public String getItemName() {
            return this.itemName;
        }
     
        public void setItemName(String itemName) {
            this.itemName = itemName;
        }
     
    }
    Le 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
     
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <!-- Generated 14-mars-2006 19:20:12 by Hibernate Tools 3.1.0 beta3 -->
    <hibernate-mapping>
        <class name="hibernate.Items" table="ITEMS">
     
            <id name="itemId" type="int">
                <column name="ItemId" />
                <generator class="identity" />
            </id>
     
            <property name="itemTypeId" type="int">
                <column name="ItemTypeId" not-null="true" />
            </property>
     
            <property name="itemName" type="string">
                <column name="ItemName" length="100" not-null="true" />
            </property>
     
        </class>
    </hibernate-mapping>
    le cfg:
    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
     
    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
    <hibernate-configuration>
        <session-factory name="MyFactory">
            <!--property name="hibernate.cglib.use_reflection_optimizer">true</property-->
            <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
            <property name="hibernate.connection.password">blablabla</property>
            <property name="hibernate.connection.url">jdbc:mysql://localhost/MyTest</property>
            <property name="hibernate.connection.username">root</property>
            <property name="hibernate.default_catalog">MyTest</property>
            <property name="hibernate.default_schema">MyTest</property>
            <property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
            <!-- property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property-->
            <property name="hibernate.show_sql">true</property>
            <mapping file="./hibernate/Items.hbm.xml"/>
     
     
        </session-factory>
    </hibernate-configuration>
    le test:
    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
     
    public class TestClass {
     
     
    	public TestClass(){
     
    		Configuration cfg = new Configuration();		
    		cfg.configure("./hibernate/hibernate.cfg.xml");
     
    		SessionFactory sessionFactory = cfg.buildSessionFactory(); 
    		Session session = sessionFactory.openSession();
     
    		Transaction transaction = session.beginTransaction();
     
    		Items item = new Items();		
    		item.setItemName("Test");
    		item.setItemTypeId(0);		
    		session.save(item);
     
    		transaction.commit();
    	}
     
    	/**
             * @param args
             */
    	public static void main(String[] args) {		
    		new TestClass();
    	}
     
    }
    et voilà le stacktrace
    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
     
     
    Exception in thread "main" org.hibernate.exception.SQLGrammarException: could not insert: [hibernate.Items]
    	at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:65)
    	at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
    	at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:1986)
    	at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2405)
    	at org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:37)
    	at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:243)
    	at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:269)
    	at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:167)
    	at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:101)
    	at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:186)
    	at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
    	at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:175)
    	at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)
    	at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
    	at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:544)
    	at org.hibernate.impl.SessionImpl.save(SessionImpl.java:533)
    	at org.hibernate.impl.SessionImpl.save(SessionImpl.java:529)
    	at Tests.TestClass.<init>(TestClass.java:37)
    	at Tests.TestClass.main(TestClass.java:46)
    Caused by: java.sql.SQLException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.ITEMS (ItemTypeId, ItemName) values (0, 'Test')' at line 1
    	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2928)
    	at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1571)
    	at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1666)
    	at com.mysql.jdbc.Connection.execSQL(Connection.java:2994)
    	at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:936)
    	at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1166)
    	at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1082)
    	at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1067)
    	at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:1968)
    	... 16 more
    La table items est la suivante: ItemId (INTEGER autoincrementé), ItemTypeId (INTEGER), ItemName(VARCHAR 100)

    J'ai déjà chipotté avec les types dans le pojo et le mapping ainsi que le dialect dans le cfg, mais pas de succès...

    un petite idée ? :

    Merci d'avance ...

    Greg

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2005
    Messages : 73
    Points : 56
    Points
    56
    Par défaut
    Bon c'est bon... j'ai vu ce que c'était... HibernateTool me génère le schéma et le catalogue avec la mêm chose... j'ai enlevé le schéma et ca passe ... pffffffff

    Il a fallu que je poste pour trouver le problème toujours la même chose ces histoire

    @+

    PS : Au fait n'y a-t-il pas d'outils plus fiables que hibernatetool ?

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

Discussions similaires

  1. Problème d'insertion en DB via Hibernate
    Par 2Fick dans le forum Hibernate
    Réponses: 0
    Dernier message: 01/06/2011, 14h21
  2. [Unitils] [TestNG][DBUnit][JPA][Hibernate] problème de sequence lors d'un insert.
    Par Faiche dans le forum Tests et Performance
    Réponses: 1
    Dernier message: 19/10/2009, 16h39
  3. Problème d'insertion hibernate dans la base
    Par sheura dans le forum Hibernate
    Réponses: 5
    Dernier message: 20/09/2007, 14h02
  4. [HIBERNATE] Problème d'insert de masse en HQL
    Par ange bleu dans le forum Hibernate
    Réponses: 9
    Dernier message: 20/04/2006, 09h39
  5. [Hibernate] problème d'insertion dans la base de données
    Par Willy7901 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 18/08/2005, 13h19

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