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 Eclipse HSQLDB


Sujet :

Hibernate Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Points : 6
    Points
    6
    Par défaut Hibernate Eclipse HSQLDB
    Salut à tous,
    Je viens juste de tester mon premier exemple avec Hibernate,
    j'utilise la plate forme suivante:
    Eclipse 3.1, Hibernate version 2.0 et HSQLDB comme SGBD,
    en compilant le programme, j'ai le message d'erreur suivant:
    ----------------------------------------------------------------
    Exception in thread "main" java.lang.ExceptionInInitializerError
    at Test.main(Test.java:7)
    Caused by: java.lang.NumberFormatException: For input string: ""
    at java.lang.NumberFormatException.forInputString(Unknown Source)
    at java.lang.Integer.parseInt(Unknown Source)
    at java.lang.Integer.parseInt(Unknown Source)
    at net.sf.hibernate.util.PropertiesHelper.getInt(PropertiesHelper.java:18)
    at net.sf.hibernate.connection.DriverManagerConnectionProvider.configure(DriverManagerConnectionProvider.java:40)
    at net.sf.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:83)
    at net.sf.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:153)
    at net.sf.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:627)
    at com.test.HibernateUtil.<clinit>(HibernateUtil.java:11)
    ... 1 more
    -----------------------------------
    sachant que le fichier de mapping et comme suit:
    ----------------------------------------------------
    <?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="com.test.TContact" table="t_contact">
    <id name="Id" type="integer">
    <column name="id" sql-type="integer"/>
    <generator class="increment" />
    </id>
    <property name="Nom" type="string">
    <column name="nom" sql-type="char(20)" not-null="true"/>
    </property>
    <property name="Prenom" type="string">
    <column name="prenom" sql-type="char(20)" not-null="true"/>
    </property>
    </class>
    </hibernate-mapping>
    ----------------------------------------------------
    quelqu'un à une idée comme résoudre cet erreur,
    merci

  2. #2
    Membre expérimenté Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Points : 1 639
    Points
    1 639
    Par défaut
    Il semblerait que tu ais un pb de conversion entre Hibernate et ta bdd ou encore entre ton mapping et ton bean TContact.

    Montre voir le code de TContact, la structure de ta table et l instruction hibernate que tu essaye de de faire.(en utilsant la balise code, c est plus lisible)

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Merci,
    je pense aussi qu'il y a un pb de mapping mais j'arrive pas à l'identifier,
    voici le code de ma bean TContact et mon classe test qui stocke les donnée:
    -----
    TContact:
    ---------
    package com.test;
    public class TContact {
    public TContact() {

    }
    private int Id;
    private String Nom;
    private String Prenom;

    public int getId() {
    return Id;
    }
    public void setId(int Id) {
    this.Id = Id;
    }
    public String getNom() {
    return Nom;
    }
    public void setNom(String Nom) {
    this.Nom = Nom;
    }
    public String getPrenom() {
    return Prenom;
    }
    public void setPrenom(String Prenom) {
    this.Prenom = Prenom;
    }

    }
    -------
    Classe Test
    -----------
    import net.sf.hibernate.*;
    import com.test.*;
    public class Test {
    public static void main(String[] args)
    throws HibernateException {
    Session session = HibernateUtil.currentSession();
    Transaction tx = session.beginTransaction();
    TContact contact = new TContact();
    contact.setNom("Dupont");
    contact.setPrenom("Jean");
    session.save(contact);
    contact = new TContact();
    contact.setNom("Lambert");
    contact.setPrenom("Julie");
    session.save(contact);
    tx.commit();
    HibernateUtil.closeSession();
    }

    }
    ----------
    ma table t_contact contient les tuple suivant:
    id int,
    nom char(20),
    prenom char(20)
    -------------------------------

  4. #4
    Membre habitué Avatar de xv-mnt
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2005
    Messages : 142
    Points : 178
    Points
    178
    Par défaut
    Essaie de remplace le type primitif int par la classe Integer qui permet de gérer la valeur null.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Merci,
    j'ai changer le type int par Integer, le message d'erreur change:
    ---------------------
    Exception in thread "main" java.lang.ExceptionInInitializerError
    at Test.main(Test.java:7)
    Caused by: java.lang.RuntimeException: Problème de configuration : duplicate import: TContact
    at com.test.HibernateUtil.<clinit>(HibernateUtil.java:13)
    ... 1 more
    Caused by: net.sf.hibernate.MappingException: duplicate import: TContact
    at net.sf.hibernate.cfg.Mappings.addImport(Mappings.java:60)
    at net.sf.hibernate.cfg.Binder.bindClass(Binder.java:108)
    at net.sf.hibernate.cfg.Binder.bindRootClass(Binder.java:165)
    at net.sf.hibernate.cfg.Binder.bindRoot(Binder.java:1095)
    at net.sf.hibernate.cfg.Configuration.add(Configuration.java:230)
    at net.sf.hibernate.cfg.Configuration.addInputStream(Configuration.java:252)
    at net.sf.hibernate.cfg.Configuration.addResource(Configuration.java:273)
    at net.sf.hibernate.cfg.Configuration.configure(Configuration.java:841)
    at net.sf.hibernate.cfg.Configuration.configure(Configuration.java:792)
    at net.sf.hibernate.cfg.Configuration.configure(Configuration.java:732)
    at net.sf.hibernate.cfg.Configuration.configure(Configuration.java:719)
    at com.test.HibernateUtil.<clinit>(HibernateUtil.java:11)
    ... 1 more

    --------------------
    sachant que le message Problème de configuration c'est un message personnel dans le catch de mon classe HubernateUtil:
    ------------------------------
    package com.test;
    import net.sf.hibernate.*;
    import net.sf.hibernate.cfg.*;

    public class HibernateUtil {
    private static final SessionFactory sessionFactory;
    static {
    try {
    // Crée la SessionFactory à partir de hibernate.cfg.xml
    sessionFactory =
    new Configuration().configure().buildSessionFactory();
    } catch (HibernateException ex) {
    throw new RuntimeException("Problème de configuration : "
    + ex.getMessage(), ex);
    }}
    public static final ThreadLocal session = new ThreadLocal();
    public static Session currentSession()
    throws HibernateException {
    Session s = (Session) session.get();
    // Ouvre une nouvelle Session, si ce Thread n'en a aucune
    if (s == null) {
    s = sessionFactory.openSession();
    session.set(s);
    }
    return s;
    }
    public static void closeSession()
    throws HibernateException {
    Session s = (Session) session.get();
    session.set(null);
    if (s != null)
    s.close();
    }
    }
    ---------------------------------------
    j'espère pas que c'est un pb de Hibernate avec ma BdD sachant que mon fichier de configuration est
    ------------------------------
    <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-configuration
    PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">
    <hibernate-configuration>
    <session-factory>
    <!-- local connection properties -->
    <property name="connection.url">
    jdbc:hsqldb:file:C:/base/test;shutdown=true
    </property>
    <property name="hibernate.connection.username">sa</property>
    <property name="hibernate.connection.password"></property>
    <property name="hibernate.connection.driver_class">
    org.hsqldb.jdbcDriver
    </property>
    <property name="hibernate.connection.pool_size"></property>
    <property name="dialect">net.sf.hibernate.dialect.HSQLDialect</property>
    <property name="hibernate.show_sql">false</property>
    <property name="hibernate.transaction.factory_class">
    net.sf.hibernate.transaction.JDBCTransactionFactory
    </property>
    <mapping resource="tcontact.hbm.xml"/>
    </session-factory>
    </hibernate-configuration>

    -------------
    qu'est ce que tu pense !!

  6. #6
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Ton problème vient de là
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <id name="Id" type="integer">         <----- devrait être type="int"
    <column name="id" sql-type="integer"/>
    <generator class="increment" />
    </id>
    A+

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    365
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Janvier 2006
    Messages : 365
    Points : 495
    Points
    495
    Par défaut
    Etant donné que tu commences avec Hibernate, il serait judicieux que tu passes directement à Hibernate 3, pour t'éviter des problèmes d'upgrade et d'incompatibilité par la suite ...

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Merci,
    je viens juste de changer la version d'hibernate 2.0 par celle de hibernate-2.1.8. est ça marche

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    m'enfin!
    j'ai le même problème que toi , mais je suis en ECLIPSE EUROPA avec hsqldb.
    Ca marche bien avec MYSQL. Maintenant quej'essaie avec HSQLDB, j'ai une erreur d'execution comme la tienne.
    ci-joint mes fichiers config.xml et t_contact.xbm de mapping

    help needed.

    12 août 2007 15:01:01 net.sf.hibernate.cfg.Environment <clinit>
    INFO: Hibernate 2.1.6
    12 août 2007 15:01:01 net.sf.hibernate.cfg.Environment <clinit>
    INFO: hibernate.properties not found
    12 août 2007 15:01:01 net.sf.hibernate.cfg.Environment <clinit>
    INFO: using CGLIB reflection optimizer
    12 août 2007 15:01:01 net.sf.hibernate.cfg.Configuration configure
    INFO: configuring from resource: /hibernate.cfg.xml
    12 août 2007 15:01:01 net.sf.hibernate.cfg.Configuration getConfigurationInputStream
    INFO: Configuration resource: /hibernate.cfg.xml
    12 août 2007 15:01:01 net.sf.hibernate.cfg.Configuration addResource
    INFO: Mapping resource: TContact.hbm
    12 août 2007 15:01:01 net.sf.hibernate.cfg.Binder bindRootClass
    INFO: Mapping class: com.minosis.hibernate.TContact -> t_contact
    12 août 2007 15:01:01 net.sf.hibernate.cfg.Configuration doConfigure
    INFO: Configured SessionFactory: null
    12 août 2007 15:01:01 net.sf.hibernate.cfg.Configuration secondPassCompile
    INFO: processing one-to-many association mappings
    12 août 2007 15:01:01 net.sf.hibernate.cfg.Configuration secondPassCompile
    INFO: processing one-to-one association property references
    12 août 2007 15:01:01 net.sf.hibernate.cfg.Configuration secondPassCompile
    INFO: processing foreign key constraints
    12 août 2007 15:01:01 net.sf.hibernate.dialect.Dialect <init>
    INFO: Using dialect: net.sf.hibernate.dialect.HSQLDialect
    12 août 2007 15:01:01 net.sf.hibernate.cfg.SettingsFactory buildSettings
    INFO: Use outer join fetching: true
    Exception in thread "main" java.lang.ExceptionInInitializerError
    at Test.main(Test.java:9)
    Caused by: java.lang.NumberFormatException: For input string: ""
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
    at java.lang.Integer.parseInt(Integer.java:468)
    at java.lang.Integer.parseInt(Integer.java:497)
    at net.sf.hibernate.util.PropertiesHelper.getInt(PropertiesHelper.java:23)
    at net.sf.hibernate.connection.DriverManagerConnectionProvider.configure(DriverManagerConnectionProvider.java:41)
    at net.sf.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:83)
    at net.sf.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:65)
    at net.sf.hibernate.cfg.Configuration.buildSettings(Configuration.java:1155)
    at net.sf.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:789)
    at com.minosis.hibernate.HibernateUtil.<clinit>(HibernateUtil.java:13)
    ... 1 more
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. hibernate & eclipse(Hibernate Mapping File)
    Par coquero dans le forum Hibernate
    Réponses: 5
    Dernier message: 06/07/2006, 11h48
  2. [Hibernate & Eclipse] problème mapping
    Par sonia_ppr dans le forum Hibernate
    Réponses: 4
    Dernier message: 04/05/2006, 14h32
  3. [Tomcat]Hibernate eclipse et TOMCAT
    Par Pck dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 25/10/2005, 09h32
  4. [Hibernate] [Eclipse] Création du fichier de mapping
    Par Willy7901 dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 11/08/2005, 17h54
  5. [Plugin][Hibernate]Eclipse avec hibernate(synchronizer)
    Par mg67 dans le forum Eclipse Java
    Réponses: 7
    Dernier message: 23/06/2005, 17h19

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