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 :

Fichier hbm non trouvé à l'exécution


Sujet :

Hibernate Java

  1. #1
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 337
    Points : 188
    Points
    188
    Par défaut Fichier hbm non trouvé à l'exécution
    Bonjour,

    je débute tout juste en hibernate, et petit à petit, j'avance, et je résous les problèmes.

    sauf que là, je n'y arrive plus : je n'arrive pas à pointer vers un fichier hbm dans mon fichier de mapping hibernate !

    resource: Entite.hbm.xml not found

    la ligne qui plante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <mapping resource="Entite.hbm.xml"/>
    mon fichier se trouver dans src/com.hibernate

    comment enlever cette erreur ?
    (\ _ /)
    (='.'=) Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant.

  2. #2
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Salut
    Est ce que tu utilises les annotations ou les fichiers hbm pour le mapping ?

    Si c'est le premier cas, alors il faut utiliser AnnotationConfiguration pour créer la SessionFactory :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sessionFactory = new AnnotationConfiguration().configure(
    						CONFIG_FILE_LOCATION).buildSessionFactory();
    Si c'est le second cas, alors il faut utiliser l'attribut resource plutôt que class :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    <mapping resource="test/hib/common/relation.hbm.xml" />

  3. #3
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 337
    Points : 188
    Points
    188
    Par défaut
    j'utilise les fichiers hbm.

    et j'utilise bien ressource plutôt que class.

    le problème se situe au niveau du chemin de la ressource :

    elle se trouve dans le package com.hibernate, qui est situé dans le répertoire src.

    son nom est Entite.hbm.xml

    j'ai essayé plein de solutions, mais je n'ai toujours pas trouvé la bonne.
    <mapping resource="com/hibernate/Entite.hbm.xml" />
    <mapping resource="com.hibernate/Entite.hbm.xml" />
    <mapping resource="projet.src.com.hibernate.Entite.hbm.xml" />
    <mapping resource="projet/src/com/hibernate/Entite.hbm.xml" />

    et encore d'autres.

    quelqu'un saurait-il me dire quel chemin est-ce qu'il faut déclarer pour ne plus avoir l'erreur :

    Problème de configuration : resource: com.hibernate/Entite.hbm.xml not found
    (\ _ /)
    (='.'=) Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant.

  4. #4
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Citation Envoyé par mouaa Voir le message
    j'utilise les fichiers hbm.

    et j'utilise bien ressource plutôt que class.
    Bah tu as changé ton message pendant que je répondais

    Citation Envoyé par mouaa Voir le message
    j'ai essayé plein de solutions, mais je n'ai toujours pas trouvé la bonne.
    C'est la première :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    <mapping resource="com/hibernate/Entite.hbm.xml" />

    par contre, vérifies que ce fichier est bien présent dans le dossier bin (ou build ou autre) de ton projet : peut être que ton eDI (si tu en utilises un) les filtre et que tu compiles à la main et que tu ne les copies pas dans le dossier de build ?

  5. #5
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 337
    Points : 188
    Points
    188
    Par défaut
    oui effectivement j'avais changé mon message.
    j'ai laissé tombé les annotations, ça me causait des erreurs

    j'utilise Eclipse, qui a bien "buildé" les fichiers

    en ce qui concerne le chemin, c'est bon, il a fini par trouvé le chemin !

    tu avais raison pour l'adresse

    mais une autre erreur se profile à l'horizon :

    Problème de configuration : entity class not found: Entite

    j'ai jeté un oeil dans mon fichier Entite.hbm.xml, il fait référence à Entite.class, mais par contre il ne précise pas son chemin complet :
    en effet, il est situé dans le même dossier.

    faut-il re-préciser l'adresse complète ?

    un extrait de mon Entite.hbm.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <class name="Entite" table="entite" catalog="bdd">
    faudrait-il plutôt mettre quelque chose du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <class name="com/hibernate/Entite.java" table="entite" catalog="bdd">
    (\ _ /)
    (='.'=) Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant.

  6. #6
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 337
    Points : 188
    Points
    188
    Par défaut
    ah j'ai trouvé, il fallait mettre des "." ce coup-ci...

    par contre, maintenant j'ai une super erreur :

    Exception in thread "main" org.hibernate.exception.SQLGrammarException: could not insert: [com.hibernate.Entite]

    une idée ?
    (\ _ /)
    (='.'=) Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant.

  7. #7
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Non, il faut utilsier le nom qualifié de la classe (comme pour le simport par exemple) :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    <class name="com.hibernate.Entite" table="entite" catalog="bdd">

  8. #8
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 337
    Points : 188
    Points
    188
    Par défaut
    okay !

    t'es un as toi !

    bon, nouveau problème :

    la requête qui passe n'est pas bonne :

    insert into bdd.bdd.entite (nom_entite, adresse_id_adresse) values (?, ?)

    je ne comprends pas :
    - le bdd.bdd ??? pourquoi m'a-t-il dupliqué le nom de la bdd ?
    - pourquoi n'a-t-il par passé les valeurs ?

    mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Entite entite = new Entite();
     entite.setNomEntite("Orleans");
     entite.setAdresseIdAdresse(new Integer(1));
    (\ _ /)
    (='.'=) Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant.

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Peux-tu montrer le hbm ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 337
    Points : 188
    Points
    188
    Par défaut
    le voilà !

    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
    <?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 27 oct. 2008 18:23:18 by Hibernate Tools 3.2.2.GA -->
    <hibernate-mapping>
        <class name="com.hibernate.Entite" table="entite" catalog="bdd">
            <id name="idEntite" type="java.lang.Integer">
                <column name="id_entite" />
                <generator class="identity" />
            </id>
            <property name="nomEntite" type="string">
                <column name="nom_entite" length="45" not-null="true" />
            </property>
            <property name="adresseIdAdresse" type="int">
                <column name="adresse_id_adresse" not-null="true" />
            </property>
        </class>
    </hibernate-mapping>
    (\ _ /)
    (='.'=) Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant.

  11. #11
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 337
    Points : 188
    Points
    188
    Par défaut
    j'ai réglé le problème du "insert into bdd.bdd.entite"
    (nom de la base dupliqué).

    pour info à ceux auxquels ça arrive, je suis partie du fait que j'ai précisé la base de données lors de la connexion dans le fichier hibernate.cfg.xml

    or, je précisais aussi le nom de la BDD dans les fichiers hbm :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <hibernate-mapping>
        <class name="com.hibernate.Entite" table="entite" catalog="bdd">
    donc pour cela, j'ai supprimé catalog="bdd"

    résultat : le nom de la bdd n'est plus dupliqué !

    problème résolu !
    (\ _ /)
    (='.'=) Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant.

  12. #12
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    S'il ne passe pas les valeurs des paramètres, ça marchera pas.
    Si ça marche, c'est qu'il a passé les paramètres quelque part ...

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

Discussions similaires

  1. Fichier dmp non trouvé apprès Exp
    Par s_cherbani dans le forum Oracle
    Réponses: 4
    Dernier message: 31/12/2009, 09h00
  2. Fichier entête non trouvée par CodeBlocks
    Par Bundy*Al dans le forum Code::Blocks
    Réponses: 1
    Dernier message: 06/11/2009, 19h13
  3. Fonctions non trouvées à l'exécution
    Par remy_ dans le forum Ogre
    Réponses: 4
    Dernier message: 19/10/2009, 11h41
  4. Fichiers jar non trouvés
    Par Mister Nono dans le forum Langage
    Réponses: 14
    Dernier message: 26/07/2007, 16h41
  5. fichier properties non trouvé
    Par kifouillou dans le forum Langage
    Réponses: 42
    Dernier message: 15/02/2007, 13h47

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