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 :

pb avec le fichier de mapping hibernate


Sujet :

Hibernate Java

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 47
    Points : 20
    Points
    20
    Par défaut pb avec le fichier de mapping hibernate
    bonjour,
    j'ai un pb au niveau de fichier de mapping hibernate il est introuvable
    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
    log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
    log4j:WARN Please initialize the log4j system properly.
    Initial SessionFactory creation failed.org.hibernate.MappingNotFoundException: resource: data.pojo/Bonsortie.hbm.xml not found
    Exception in thread "main" java.lang.ExceptionInInitializerError
    	at util.HibernateUtil.<clinit>(HibernateUtil.java:34)
    	at testinsert.main(testinsert.java:11)
    Caused by: org.hibernate.MappingNotFoundException: resource: data.pojo/Bonsortie.hbm.xml not found
    	at org.hibernate.cfg.Configuration.addResource(Configuration.java:517)
    	at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1511)
    	at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1479)
    	at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1458)
    	at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1432)
    	at org.hibernate.cfg.Configuration.configure(Configuration.java:1352)
    	at org.hibernate.cfg.Configuration.configure(Configuration.java:1338)
    	at util.HibernateUtil.<clinit>(HibernateUtil.java:28)
    	... 1 more
    est ce que parce qu'il est mal placé?
    sachant que je l'ai placé dans un package (data.pojo) avec la classe correspondante et je l'ai déclaré dans hibernate.cfg.xml

  2. #2
    Futur Membre du Club
    Inscrit en
    Mai 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    Je pense que c'est le meme probleme que j'ai eu hier

    lors de ta déclaration de le sessionFactory.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    sessionFactory = Configuration().configure(new File("data.pojo/Bonsortie.cfg.xml")).buildSessionFactory();

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 47
    Points : 20
    Points
    20
    Par défaut
    je fais les changements que vous m'avez dit et pourtant je continue toujoours d'avoir le même problème. (fichier de mapping introuvable)

    est ce que ca pourrait être une erreur de fichier de configuration:

    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
    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE hibernate-configuration
        PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
     
    <hibernate-configuration>
        <session-factory >
     
    		<!-- local connection properties -->
    		<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/materiel</property>
    		<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    		<property name="hibernate.connection.username">root</property>
    		<property name="hibernate.connection.password"></property>
    		<!-- property name="hibernate.connection.pool_size"></property -->
     
    		<!-- dialect for MySQL -->
            <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
    		<property name="current_session_context_class">thread</property>
    		<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
     
            <property name="hibernate.show_sql">false</property>
            <property name="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
     
     
            <!-- mapping files -->
            <mapping resource="data.pojo/Bonsortie.hbm.xml"/>
     
        </session-factory>
     
    </hibernate-configuration>
    ou bien dans la classe HibernateUtil.java:
    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
    package util;
     
    import java.io.File;
     
    import org.hibernate.HibernateException;
    import org.hibernate.SessionFactory;
    import org.hibernate.cfg.Configuration;
     
     
     
     
     
    public class HibernateUtil {
     
     
     
     
    	public HibernateUtil() throws HibernateException{
    		super();
    		// TODO Auto-generated constructor stub
    	}
     
    	public static final SessionFactory sessionFactory;
    	static {
    		try {
    			// Création de la SessionFactory à partir de hibernate.cfg.xml
     
     
    			//sessionFactory = new Configuration().configure().buildSessionFactory();
     
     
    			sessionFactory =new  Configuration().configure(new File("src/hibernate.cfg.xml")).buildSessionFactory();
     
    					} catch (Throwable ex) {
    			// Make sure you log the exception, as it might be swallowed
    			System.err.println("Initial SessionFactory creation failed." + ex);
    			throw new ExceptionInInitializerError(ex);
    		}
    	}
     
    	//public static final ThreadLocal session = new ThreadLocal();
     
    	public static SessionFactory getSessionFactory() {
    		return sessionFactory;
    	}
     
     
     
    }

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    802
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 802
    Points : 653
    Points
    653
    Par défaut
    Attention, lorsque tu déclares ton fichier de mapping, tu dois spécifier un chemin d'accès et non pas le FQN de la classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <mapping resource="data/pojo/Bonsortie.hbm.xml"/>

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 47
    Points : 20
    Points
    20
    Par défaut
    oui c vrai le pb de fichier de mapping est résolu merci

    mais il y a un nouveau pb qui survient, d'aprés ce que j'ai compris du message d'erreur c un pb de connection à la base de donnée

    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
    log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
    log4j:WARN Please initialize the log4j system properly.
     
    Hibernate: insert into bon_sortie (ID_MAT, ID_SOCIETE, ID_INTERV_SOC, N_BON_S, DATE_S, OBJET, OBS_SORTIE, ID_SORTIE) values (?, ?, ?, ?, ?, ?, ?, ?)
    Exception in thread "main" org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update
    	at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
    	at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
    	at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:249)
    	at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:235)
    	at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:139)
    	at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
    	at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
    	at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
    	at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
    	at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
    	at testinsert.main(testinsert.java:25)
    Caused by: java.sql.BatchUpdateException: Champ 'DATE_S' inconnu dans field list
    	at com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:1099)
    	at com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:849)
    	at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:48)
    	at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:242)
    	... 8 more
    alors que j'ai déclaré le bon chemin et username et mot de passe dans le fichier de configuration ainsi j'ai ajouter le jar de connection a mysql dans le dossier lib

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    802
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 802
    Points : 653
    Points
    653
    Par défaut
    C'est bizarre que tu aies un SQLGrammarException. Est-ce que tu ne t'es pas trompé dans le dialect ?

    Peux-tu nous montrer la ligne de code correspondant à ta requête Hibernate ?

  7. #7
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 47
    Points : 20
    Points
    20
    Par défaut
    voila le code de la classe testinsert.java :
    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
    import org.hibernate.*;
     
    import util.HibernateUtil;
    import data.pojo.Bonsortie;
     
    public class testinsert {
     
    	 public static void main(String[] args)
    		throws HibernateException {
     
    		 Session session = HibernateUtil.getSessionFactory().getCurrentSession();
    		 Transaction tx=session.beginTransaction();
     
    		 Bonsortie d1 = new Bonsortie();
    		 d1.setId_sortie("informatique");
    		 d1.setId_mat("informatique");
    		 d1.setId_societe("informatique");
     
    		 d1.setId_interv_soc("informatique");
     
    		 d1.setObjet("informatique");
    		 d1.setObs_s("informatique");
    		 session.save(d1);
     
    		 tx.commit();
    		 HibernateUtil.getSessionFactory().close();
    		 System.out.println("bonjour");
    	 }
    }
    la classe Bonsortie c la classe table (pojo) correspondant à mon fichier Bonsortie.hbm.xml

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    802
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 802
    Points : 653
    Points
    653
    Par défaut
    Bon, il tu ne fait rien de spécial. Est-ce que tu as vérifié que tu utilises le bon dialect ?

  9. #9
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 47
    Points : 20
    Points
    20
    Par défaut
    peut être je sais d'ou vient le pb.
    ma table a des relations avec d'autres tables et peut être je doit le spécifier au niveau de fichier de mapping n'est ce pas?

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    802
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 802
    Points : 653
    Points
    653
    Par défaut
    Non, normalement on est pas obligé de mapper toutes les relations.

    En regardant à nouveau ton message d'erreur, il apparait que la cause de l'erreur vienne du champ `DATES_S` qui n'est pas reconnu. A coup sûr, tu travailles avec une base de données qui est déjà formatée. Tu as du te trompé dans le nom des champs.

  11. #11
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 47
    Points : 20
    Points
    20
    Par défaut
    merci pour votre aide.

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

Discussions similaires

  1. Pb de création de fichier de mapping Hibernate
    Par aschraf dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 30/03/2011, 12h38
  2. Réponses: 1
    Dernier message: 27/10/2010, 23h23
  3. Erreur fichier de mapping Hibernate
    Par Myriouma dans le forum Hibernate
    Réponses: 12
    Dernier message: 29/07/2010, 16h02
  4. Générer Base de données avec le fichier de mapping
    Par vain_mich dans le forum Hibernate
    Réponses: 1
    Dernier message: 10/05/2007, 16h07
  5. mettre a jour le fichier de mapping hibernate
    Par solawe dans le forum Hibernate
    Réponses: 3
    Dernier message: 13/12/2006, 21h14

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