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 :

Problème de Mapping avec Hibernate (class composite-id)


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 6
    Par défaut Problème de Mapping avec Hibernate (class composite-id)
    J’ai longtemps cherché une solution pour mon problème dans mon application et sur internet et rien à faire ! Voilà le problème : (MySQL-Hibernate-Eclipse)

    Dans ma base de données (gestion de bibliothèque), j’ai, entre autres, une table member, une table copy (exemplaire) et une table loan (emprunt).
    Cette dernière a une clé composée de memberID et copyID en plus de ses propres attributs !

    Lors de la compilation, après avoir généré automatiquement mes POJOs (une class LoanId est générée en plus de celle correspondant à mes tables pour l’id composite), mes hbm.xml, mes xxxHome.java (DAO), j’ai écrit mon HibernateUtil et mon mainTest, je reçois une erreur :
    Caused by: java.lang.ClassNotFoundException: LoanId

    Je ne sais vraiment pas quoi faire !

    Merci pour votre aide et je reste à votre disposition pour fournir n’importe quel code !

  2. #2
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 8
    Par défaut
    Bonjour,

    Cette erreur est dû au fait que la classe LoanId n'est pas connue par Hibernate. Est-elle bien référencée par le fichier de configuration Hibernate ?

    Owen89

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 6
    Par défaut
    En faite cette class à été générée par Hibernate mais elle n'a ni DAO ni hbm.xml ni existe comme table à part dans MySQL (elle ne figure pas dans cfg.xml). je pense que Hibernate en avait besoin pour gérer la tabe relation loan entre membre et copy...

  4. #4
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 8
    Par défaut
    Est-il possible d'avoir le code de la classe LoanId générée ? Ainsi que le fichier hibernate.cfg.xml.

    Owen89

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 6
    Par défaut
    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    package com.lima.persistance;
     
    import javax.persistence.Embeddable;
     
    @Embeddable
    public class LoanId implements java.io.Serializable {
     
    	@Override
    	public String toString() {
    		return "LoanId [idmember=" + idmember + ", idcopy=" + idcopy + "]";
    	}
     
    	private String idmember;
    	private String idcopy;
     
    	public LoanId() {
    	}
     
    	public LoanId(String idmember, String idcopy) {
    		this.idmember = idmember;
    		this.idcopy = idcopy;
    	}
     
    	public String getIdmember() {
    		return this.idmember;
    	}
     
    	public void setIdmember(String idmember) {
    		this.idmember = idmember;
    	}
     
    	public String getIdcopy() {
    		return this.idcopy;
    	}
     
    	public void setIdcopy(String idcopy) {
    		this.idcopy = idcopy;
    	}
     
    	public boolean equals(Object other) {
    		if ((this == other))
    			return true;
    		if ((other == null))
    			return false;
    		if (!(other instanceof LoanId))
    			return false;
    		LoanId castOther = (LoanId) other;
     
    		return ((this.getIdmember() == castOther.getIdmember()) || (this
    				.getIdmember() != null && castOther.getIdmember() != null && this
    				.getIdmember().equals(castOther.getIdmember())))
    				&& ((this.getIdcopy() == castOther.getIdcopy()) || (this
    						.getIdcopy() != null && castOther.getIdcopy() != null && this
    						.getIdcopy().equals(castOther.getIdcopy())));
    	}
     
    	public int hashCode() {
    		int result = 17;
     
    		result = 37 * result
    				+ (getIdmember() == null ? 0 : this.getIdmember().hashCode());
    		result = 37 * result
    				+ (getIdcopy() == null ? 0 : this.getIdcopy().hashCode());
    		return result;
    	}
     
    }

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 6
    Par défaut
    sur le code précédant, c'est moi qui ai ajouté les @notations suivant un exemple sur internet!

    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="">
      <property name="hibernate.bytecode.use_reflection_optimizer">false</property>
      <property name="hibernate.connection.driver_class">org.gjt.mm.mysql.Driver</property>
      <property name="hibernate.connection.password">AdminDev13</property>
      <property name="hibernate.connection.url">jdbc:mysql://127.0.0.1:3306/limadatabase</property>
      <property name="hibernate.connection.username">root</property>
      <property name="hibernate.default_schema">limadatabase</property>
      <property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
      <property name="show_sql">true</property>
      <property name="hibernate.search.autoregister_listeners">false</property>
      <mapping class="com.lima.persistance.Article" resource="Article.hbm.xml"/>
      <mapping class="com.lima.persistance.Booking" resource="Booking.hbm.xml"/>
      <mapping class="com.lima.persistance.Copy" resource="Copy.hbm.xml"/>
      <mapping class="com.lima.persistance.Loan" resource="Loan.hbm.xml"/>
      <mapping class="com.lima.persistance.Member" resource="Member.hbm.xml"/>
      <mapping class="com.lima.persistance.Usermaster" resource="Usermaster.hbm.xml"/>
     </session-factory>
    </hibernate-configuration>

  7. #7
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 8
    Par défaut
    Dans votre fichier hibernate.cfg.xml, il faut ajouter ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <mapping class="com.lima.persistance.LoanId" resource="LoanId.hbm.xml"/>
    Et créer le fichier de mapping correspondant (LoanId.hbm.xml).

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 6
    Par défaut
    J'ai déjà essayé de faire ça de la manière suivante mais le message d'erreur est resté le même.

    LoanId.hbm.xml
    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
    <?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 8 mai 2013 23:09:20 by Hibernate Tools 3.4.0.CR1 -->
    <hibernate-mapping>
        <class name="com.lima.persistance.LoanId" table="LOANID">
            <id name="idcopy" type="java.lang.String">
                <column name="IDCOPY" />
                <generator class="assigned" />
            </id>
            <property name="idmember" type="java.lang.String">
                <column name="IDMEMBER" />
            </property>
        </class>
    </hibernate-mapping>
    cfg.xml
    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
    <?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>
      <property name="hibernate.bytecode.use_reflection_optimizer">false</property>
      <property name="hibernate.connection.driver_class">org.gjt.mm.mysql.Driver</property>
      <property name="hibernate.connection.password">AdminDev13</property>
      <property name="hibernate.connection.url">jdbc:mysql://127.0.0.1:3306/limadatabase</property>
      <property name="hibernate.connection.username">root</property>
      <property name="hibernate.default_schema">limadatabase</property>
      <property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
      <property name="show_sql">true</property>
      <property name="hibernate.search.autoregister_listeners">false</property>
      <mapping class="Usermaster" resource="Usermaster.hbm.xml"/>
      <mapping class="Member" resource="Member.hbm.xml"/>
      <mapping class="Loan" resource="Loan.hbm.xml"/>
      <mapping class="Booking" resource="Booking.hbm.xml"/>
      <mapping class="Copy" resource="Copy.hbm.xml"/>
      <mapping class="Article" resource="Article.hbm.xml"/>
      <mapping class="LoanId" resource="LoanId.hbm.xml"/>
      <mapping class="BookingId" resource="BookingId.hbm.xml"/>
     </session-factory>
    </hibernate-configuration>

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 6
    Par défaut
    Personne n'est curieux de résoudre ce problème?

Discussions similaires

  1. Problème de map avec paramètre template
    Par bouba dans le forum Langage
    Réponses: 5
    Dernier message: 11/05/2007, 13h19
  2. Problème de synchronisation avec Hibernate
    Par toutoune60 dans le forum JSF
    Réponses: 2
    Dernier message: 15/04/2007, 12h27
  3. Problème de connection avec Hibernate Synchronizer
    Par ouzzine dans le forum Hibernate
    Réponses: 8
    Dernier message: 30/11/2006, 13h51
  4. Réponses: 8
    Dernier message: 16/10/2006, 12h28
  5. Probleme de mapping avec Hibernate
    Par kodo dans le forum Hibernate
    Réponses: 10
    Dernier message: 31/07/2006, 09h33

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