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 :

[mapping] unmapped class


Sujet :

Hibernate Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 160
    Points : 75
    Points
    75
    Par défaut [mapping] unmapped class
    j'ai une table person ainsi qu'une classe PersonDto avec les meme champs .

    cette table (person) contient une clé etrangere de la table department , cette derniere a aussi un classe DepartmentDto.

    dans le fichier de mapping associé à la table person et la classe PersonDTO j'ai fait comme ça .

    j'ai donné que la partie de la clé etrangere , parce que je crois que c'est là ou il y a le bleme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <many-to-one
    column="key_department"
    name="department"
    /> 
    
    voila l'erreur qui me sort,

    junit.framework.AssertionFailedError: Hibernate Exception during setup: An association from the table person refers to an unmapped class: reference.department.DepartmentDto

    si vous avez deja rencontré un probleme tel que celui là , veuillez me renseigner.


    merci d'avance de votre reponse

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 160
    Points : 75
    Points
    75
    Par défaut
    soit vous etes en manque d'inspiration comme moi pour l'instant , soit que j'ai mal expliqué mon bleme

    si c le cas dites le moi

  3. #3
    Membre expérimenté Avatar de yann2
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 897
    Points : 1 635
    Points
    1 635
    Par défaut
    Bonjour,

    Il semble que la classe DepartmentDto n'ait pas de fichier de mapping.

    unmapped class: reference.department.DepartmentDto
    Donc ça marche pas !
    Il faut le faire le mapping entre la classe DepartementDto et la table Department.

    bon courage.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 160
    Points : 75
    Points
    75
    Par défaut
    c'est ce que je croyais moi aussi à force de faire bcp de DAO et DTO suivant mon diagramme de classe , mais malheureusement c'est pas ça l'erreur puisque il existe le fichier de mapping et c'est testé et ça marche nikel.

    j'aurai bien aimé que ça soit rien que ça, mais bon

    je te remercie quand meme pour l'interet

  5. #5
    Membre expérimenté Avatar de yann2
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 897
    Points : 1 635
    Points
    1 635
    Par défaut
    re

    mais malheureusement c'est pas ça l'erreur puisque il existe le fichier de mapping et c'est testé et ça marche nikel.
    Pourtant il s'agit bien de l'erreur indiqué !

    Est ce que tous les fichiers de mapping sont renseignés dans le fichier de config d'hibernate ?

    bon courage

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 160
    Points : 75
    Points
    75
    Par défaut
    voila il se peut que tu touche le nerf sensible là , justement j'ai rien indiquer dans le fichier concernant ça dans le fichier de config de hibernate.

    est ce que tu peux me donner la syntaxe pour dire au fichier de config d'hibernate que les fichiers de mapping sont dans tel ou tel endroit.

    je vais essayer cette solution , mais si je crois que c'est pas ça exactement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <many-to-one
    column="key_role"
    name="role"
    class="RoleDto"
    /> 
    
    <many-to-one
    column="key_department"
    name="department"
    class="DepartmentDto"
    /> 
    
    tu vois la premiere passe mais la seconde bloque


    j'ajoute selement que je travaille avec spring et quand il y a spring avec hibernate ,c'est spring qui s'occupe de tout en fait l'instanciation , configuration et tout.

    mais bon je vais essayer ça, si bien sur t'as la syntaxe , sinon je vais chercher dans mon coté la syntaxe.

    merci pour l'aide yann

  7. #7
    Membre expérimenté Avatar de yann2
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 897
    Points : 1 635
    Points
    1 635
    Par défaut
    re,

    Exemple de fichier de configuration tiré de http://www.hibernate.org/hib_docs/v3...-configuration

    <?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>

    <!-- Database connection settings -->
    <property name="connection.driver_class">org.hsqldb.jdbcDriver</property>
    <property name="connection.url">jdbc:hsqldb:hsql://localhost</property>
    <property name="connection.username">sa</property>
    <property name="connection.password"></property>

    <!-- JDBC connection pool (use the built-in) -->
    <property name="connection.pool_size">1</property>

    <!-- SQL dialect -->
    <property name="dialect">org.hibernate.dialect.HSQLDialect</property>

    <!-- Enable Hibernate's automatic session context management -->
    <property name="current_session_context_class">thread</property>

    <!-- Disable the second-level cache -->
    <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>

    <!-- Echo all executed SQL to stdout -->
    <property name="show_sql">true</property>

    <!-- Drop and re-create the database schema on startup -->
    <property name="hbm2ddl.auto">create</property>

    <mapping resource="events/Event.hbm.xml"/>

    </session-factory>

    </hibernate-configuration>
    Par contre je ne sais pas si il y a des particularités pour les tests...

    bon courage.

  8. #8
    Membre éclairé Avatar de BizuR
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    688
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 688
    Points : 757
    Points
    757
    Par défaut
    Salut,

    En lisant l'erreur générée également je dirai que cela vient également de ton mapping ...

    une petite question, a quoi sert le DTO ? Il me semblait que les frameworks de persistance permettent justement de "se passer" de la couche DTO en gérant eux même l'état des objets persistants ...

    Si quelqu'un avait une précision à ce sujet, je m'en inspirerais bien
    Sinon au niveau de l'erreur, pourrais tu confirmer que tu possède bien la ligne suivante dans un de tes fichiers de mappings :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <hibernate-mapping package="fr.truc.machin.department">
    ...
        <class name="DepartmentDTO" table="TABLE_DEPARTMENT">
    ...
    (ou dans le genre)

    car pour le moment tu ne nous montre que tes associations et c'est pas forcément évident de t'aider

    Merci.

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 160
    Points : 75
    Points
    75
    Par défaut
    pour repondre à bizur , tout est la le fichier mapping et bien sur la ligne que t'as precisé, mais bon je crois que c'est pas ça l'erreur , ClasseDTO pour moi c'est la classe qui represente la table et qui contient les getters et les setters avec qlq fonctions que je fais habituellement dans mes classes.

    je vais essayer ton truc yann et je vous donne les nouvelles
    merci à vous

  10. #10
    Membre éclairé Avatar de BizuR
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    688
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 688
    Points : 757
    Points
    757
    Par défaut
    Citation Envoyé par mehdi_swatch
    pour repondre à bizur , tout est la le fichier mapping et bien sur la ligne que t'as precisé, mais bon je crois que c'est pas ça l'erreur , ClasseDTO pour moi c'est la classe qui represente la table et qui contient les getters et les setters avec qlq fonctions que je fais habituellement dans mes classes.
    ok, moi je les nomme sans le DTO derriere mais c'est donc pareil

    Citation Envoyé par mehdi_swatch
    je vais essayer ton truc yann et je vous donne les nouvelles
    merci à vous
    Si tu parles de cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <mapping resource="events/Event.hbm.xml"/>
    il ne faut pas essayer, elle est obligatoire. Elle stipule à Hibernate où trouver le fichier de mapping O/R.

    En gros, au lancement, Hibernate initialise ses paramètres avec le fichier de config ci-dessus et s'en inspire pour détecter les fichiers servant au mapping. Donc si tu ne spécifies pas cette ligne, il ne trouvera jamais les classes mappées et t'indiquera qu'il n'a aucun renseignement quant à ce mapping.

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 160
    Points : 75
    Points
    75
    Par défaut
    toujours le meme soucis

    c'est bizarre , mais je perds pas espoir

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 160
    Points : 75
    Points
    75
    Par défaut
    je suis toute à fait d'accord avec vous , mais quand on integre spring et hibernate ça devient plus complexe et la on doit pas suivre

    http://hibernate.sourceforge.net/hib...ration-3.0.dtd

    mais on doit suivre
    http://www.springframework.org/dtd/spring-beans.dtd

    sans oublier que j'ai testé bcp de classe avec cette architecture meme et toutes les classes repondaient correctement , mais au moment ou je rencontre les classes qui contiennent un objet d'autre classe = une tabe qui contient une clé etrangere

    c là où ça bloque

    j'espere que vous me comprennez

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 160
    Points : 75
    Points
    75
    Par défaut
    quand j'enleve ce bout de code du fichier de mapping ça fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <many-to-one
    column="key_role"
    name="role"
    class="RoleDto"
    /> 
    
    <many-to-one
    column="key_department"
    name="department"
    class="DepartmentDto"
    />
    

    mais cela dit je fait le test que sur le nombre d'enregistrement mais quand meme ça indique qu'il y a une erreur la dedans,

    alors est ce que vous pourrez me dire comment vous faites pour declarer <many-to-one />

    je suis prenneur à toute indication.

  14. #14
    Membre éclairé Avatar de BizuR
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    688
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 688
    Points : 757
    Points
    757
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     <!--Champ de type TypeProposition-->
            <many-to-one name="typeProposition" column="TYPE_PROPOSITION" not-null="true"/>
    Pas mieux que toi

    EDIT : En regardant ce que tu fais, peut etre n'aime t il pas l'attribut "class" ? Pour ma part, il le detecte automatiquement... maintenant, en le spécifiant, il y a peut etre un souci avec le package concerné ?

    Ta classe mappée se situe-t-elle dans le même package que celles exprimées dans tes relations (RoleDTO et DepartmentDTO) ?

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 160
    Points : 75
    Points
    75
    Par défaut
    noon je sais que l'attribut class est optionnel , je l'enleve, ça change rien mais je sais qu'il y arrive pas dans ce bout de code ça j'en suis persuadé
    en se qui concerne les packages tout est bien structurés la preuve que ça marche quand j'enleve le bout de code.

    ça cogne , mais j'ai pas encore mal

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 109
    Points : 122
    Points
    122
    Par défaut
    Citation Envoyé par mehdi_swatch
    je suis toute à fait d'accord avec vous , mais quand on integre spring et hibernate ça devient plus complexe et la on doit pas suivre

    http://hibernate.sourceforge.net/hib...ration-3.0.dtd

    mais on doit suivre
    http://www.springframework.org/dtd/spring-beans.dtd
    Tu souhaites configurer ta SessionFactory avec spring-beans.xml ? Il faut en effet y indiquer les fichiers de mapping. Voici un article traitant du sujet

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 160
    Points : 75
    Points
    75
    Par défaut
    <property name="mappingDirectoryLocations">
    <value>toto/titi/</value>

    donc les fichiers mapping c'est dans un dossier quand les inserent si j'ai bien compris

    cela dit j'ai essayé
    <property name="mappingResources">
    <list>
    <value>t1.hbm.xml</value>
    <value>t2.hbm.xml</value>
    <value>t3.hbm.xml</value>
    <value>t4.hbm.xml</value>
    </list>
    </property>

    mais ça donne rien malheureusement, mais quand meme merci.

    merci à vous tous



  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 160
    Points : 75
    Points
    75
    Par défaut
    voila je commence à voir juste donc voila.

    je suis dans la classe de test , cette classe herite de la classe abstraite "AbstractDbUnitTestCase" ok jusqu'à maintenant .

    dans cette classe il y a une methode qui appele les fichier de mapping dont t'as besoin lors du test , cela se fait quand on a dans une classe un attribut d'une autre classe , donc il faut appeler le fichier de mapping des deux calsses. " vous allez me dire à quoi bon faire ça ====> je vous reponds pour ne pas appeler à chaque fois tous les fichier de mapping qui existe "

    j'ai pas encore trouver la methode , mais elle aura bientot de mes nouvelles.

    quand je trouverai la solution je vais vous le dire comme , on retient tous la leçon de cette journée.

  19. #19
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 160
    Points : 75
    Points
    75
    Par défaut



    ça merite du champagne ça, nooon je rigole, je ne bois pas, mais bon.

    j'ai trouvé la fonction, mais bon, l'information ne doit pas etre reserver, donc voila, d'abord je vous conseille la methode du test unitaire , il n y a rien de plus beau et de plus sur, on pourra en parler de ça une autre fois.

    moi j'utilise le junit et dbunit pour mes tests.

    donc dans la fonction "AbstractDbUnitTestCase" il y a une methode abstraite qui s'appele "Set<String> getHibernateMappingFiles() " ok jusqu'à là.

    eh ben là il suffit juste de faire dans l'implementation

    set.add("fichierDeMapping.hbm.xml");

    et le tour est joué , et je viens de tester ça marche nikel.






    à vous tous

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

Discussions similaires

  1. MappingException: Association references unmapped class
    Par solfegepro dans le forum Hibernate
    Réponses: 5
    Dernier message: 02/05/2011, 11h56
  2. Céer son widget, fonctions map, unmap, realize, etc..
    Par Gamall dans le forum GTK+ avec C & C++
    Réponses: 3
    Dernier message: 07/02/2011, 13h52
  3. Association references unmapped class
    Par thaundeadboss dans le forum Hibernate
    Réponses: 1
    Dernier message: 09/07/2009, 13h59
  4. Réponses: 1
    Dernier message: 25/02/2009, 12h48
  5. 2 tables 2 fichiers de mapping 1 classe java
    Par Galak extra dans le forum Hibernate
    Réponses: 6
    Dernier message: 10/08/2006, 20h05

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