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 :

appeler une classe au sein d'une servlet


Sujet :

Hibernate Java

  1. #1
    Membre régulier
    Inscrit en
    Juillet 2008
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 119
    Points : 70
    Points
    70
    Par défaut appeler une classe au sein d'une servlet
    salut tout le monde .
    je travaille sur un site web jsp/servlet et hibernate .
    j'ai commence a développé mes classes qui vont s'occupe d'enregistrer des données dans une base de données mysql a l'aide de hibernate et cela dans une application java .
    après avoir finir toutes mes classes j'ai généré un jar qui contient les librairies hibernate avec les classes qui sont déjà tester dans l'application .
    le problème c'est lorsque j'ajoute ce jar dans une application web et j'appelle mes classes dans une servlet rien ne se passe !!!
    voila le code source de ma servlet :

    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
     
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
     
     
    import data.Candidat;
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    /**
     *
     * @author abdess
     */
    public class NewServlet extends HttpServlet {
        protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
            response.setContentType("text/html;charset=UTF-8");
            PrintWriter out = response.getWriter();
            try {
                // TODO output your page here
                out.println("<html>");
                out.println("<head>");
                out.println("<title>Servlet NewServlet</title>");  
                out.println("</head>");
                out.println("<body>");
                out.println("<h1>"+new Candidat().getCandidat("cand-000").getCiviliteCand()+"</h1>");
                out.println("</body>");
                out.println("</html>");
     
            } catch (Exception ex) {
                Logger.getLogger(NewServlet.class.getName()).log(Level.SEVERE, null, ex);
            } finally { 
                out.close();
            }
        } 
     
        @Override
        protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
            processRequest(request, response);
        } 
     
        @Override
        protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
            processRequest(request, response);
        }
        @Override
        public String getServletInfo() {
            return "Short description";
        }
     
    }
    la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    new Candidat().getCandidat("cand-000").getCiviliteCand()
    doit m'afficher la civilité du candidat ayant comme id "cand-000" !!!
    cependant lorsque j'ajoute mon jar dans une application et que j'exécute ce ligne dans la méthode main ca marche tres bien :
    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
     
    package datarecrute;
     
    import data.Candidat;
    /**
     *
     * @author abdess
     */
    public class Main {
            public static void main(String[] args) {
            try {
                new Candidat().getCandidat("cand-000").getCiviliteCand();
                } 
            catch (Exception ex) {
                //........
                }
     
            }
    }
    Svp aidez moi

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    peux-tu etre plus précis sur le "rien ne se passe". Qu'obtiens-tu comme réponse vs ce que tu aurais du obtenir.

  3. #3
    Membre régulier
    Inscrit en
    Juillet 2008
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 119
    Points : 70
    Points
    70
    Par défaut
    normalement lorsque j'exécute cette ligne dans une application dans la méthode main :
    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
     
    package datarecrute;
     
    import data.Candidat;
    /**
     *
     * @author abdess
     */
    public class Main {
            public static void main(String[] args) {
            try {
                System.out.println(new Candidat().getCandidat("cand-000").getCiviliteCand();
                } 
            catch (Exception ex) {
                //........
                }
     
            }
    }
    il m'affiche dans la console la civilite du candidat ayant comme id "cand-000".
    alors lorsque j'ai apporte le jar dans une application web j'ai exécute le même ligne dans une servlet alors je dois obtenir un Monsieur(=civilité du candidat ayant comme id "cand-000") sur la page web cependant une erreur qui s'affiche :
    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
     
    type Rapport d'exception
     
    message
     
    description Le serveur a rencontr� une erreur interne () qui l'a emp�ch� de satisfaire la requ�te.
     
    exception
     
    javax.servlet.ServletException: L'ex�cution de la servlet a lanc� une exception
    	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
     
    cause m�re
     
    java.lang.ExceptionInInitializerError
    	util.HibernateUtil.<clinit>(HibernateUtil.java:28)
    	NewServlet.getUsr(NewServlet.java:93)
    	NewServlet.processRequest(NewServlet.java:38)
    	NewServlet.doGet(NewServlet.java:66)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
     
    cause m�re
     
    org.hibernate.DuplicateMappingException: Duplicate collection role mapping data.Formation.cvs
    	org.hibernate.cfg.Mappings.addCollection(Mappings.java:124)
    	org.hibernate.cfg.HbmBinder.createClassProperties(HbmBinder.java:2066)
    	org.hibernate.cfg.HbmBinder.createClassProperties(HbmBinder.java:2041)
    	org.hibernate.cfg.HbmBinder.bindRootPersistentClassCommonValues(HbmBinder.java:359)
    	org.hibernate.cfg.HbmBinder.bindRootClass(HbmBinder.java:273)
    	org.hibernate.cfg.HbmBinder.bindRoot(HbmBinder.java:144)
    	org.hibernate.cfg.Configuration.add(Configuration.java:669)
    	org.hibernate.cfg.AnnotationConfiguration.processArtifactsOfType(AnnotationConfiguration.java:519)
    	org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:286)
    	org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1286)
    	org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859)
    	util.HibernateUtil.<clinit>(HibernateUtil.java:24)
    	NewServlet.getUsr(NewServlet.java:93)
    	NewServlet.processRequest(NewServlet.java:38)
    	NewServlet.doGet(NewServlet.java:66)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
     
    note La trace compl�te de la cause m�re de cette erreur est disponible dans les fichiers journaux de Apache Tomcat/6.0.18.
    merci de m'aider si non je dois recommencer de 0 mais cette fois dans une application web.je comprend pas cest ou l'erreur
    merci de m'aider

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    Visiblement dans util.HibernateUtil.<clinit>(HibernateUtil.java:24), tu as chargé deux fois le mapping de "data.Formation.cvs", ce qui est déjà une fois de trop.

    org.hibernate.DuplicateMappingException: Duplicate collection role mapping data.Formation.cvs

  5. #5
    Membre régulier
    Inscrit en
    Juillet 2008
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 119
    Points : 70
    Points
    70
    Par défaut
    le fichier HibernateUtil est généré automatiquement par netbeans . et ca marche très bien sur une application standard,le problème c'est lorsque j'ajoute le jar a une application web ? est ce que je dois modifier qlq chose dans le serveur apache ou ????
    si non si y'a un exemple de comment travailler avec hibernate sur une application web
    merci de votre aide

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    y a pas grand chose de différent. Par contre, la pile d'appel que t'as montré dans l'erreur ne correspond pas du tout à ton code. Par exemple, on y vois que ta servlet fait appel à HibernateUtil. Hors, je ne vois nulle part cet appel dans le code de la servlet que t'as utilisé. En pratique, t'a probablement du mettre plusieurs fois ta référence à la classe dans ton fichier de config hibernate, ce qui expliquerait.

  7. #7
    Membre régulier
    Inscrit en
    Juillet 2008
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 119
    Points : 70
    Points
    70
    Par défaut
    bonjour
    je vous remercie de votre aide .mais vraiment je sais pas exactement c'est ou l'erreur !!!parce que en fait lorsque j'apporte le . jar dans une application standard tout marche très bien sans aucune erreur ce que n'est pas le cas avec une application web .
    Ce projet et un projet de fin d'études(licence 3) que je dois le représenter très bientôt. alors je crois que je vais commencer a 0 mais cette fois en testant dans une application web.
    mais toujours je suis curieux a savoir pour quoi le jar fonctionne tres bien dans une application standard et non plus d'une une web .
    en cliquant sur Le lien ci dessous vous pouvez télécharger un fichier compresse
    qui contient :
    *un fichier sql qui contient la base de donnée toute entière.
    * un dossier AcceeDonnee qui contient le .jar (qui contient les librairies hibernates et les classes persistantes) .
    * 3 fichiers README(Societe),README(Agent),README(Candidat) qui contiennent des portion de code a propos de l'enregistrement,suppression,mise a jour....des données de la base de données.
    pour les gens qui veulent tester cela ,il suffit d'ajouter le .Jar a l'application java et tester un code (vous pouvez vous referez sur les fichiers README pour tester).Aussi pour la base Données,j'utilise root comme nom Administrateur de base de données mysql et "youp" comme password .alors il faut soit vous changer votre mot de passe soit vous modifier le fichier hibernate.cfg.xml
    http://www.adrive.com/public/88fb23e...62aca1f2f.html
    je vous remercie

  8. #8
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    si tu veux qu'on t'aide, il faut

    1) le code de ta servlet (avec initialisation etc)
    2) le code de ton HibernateUtil
    3) la copie de ton fichier de config hibernate
    4) l'explication sur "comment" tu crée ta session factory (puisque c'est la création de cette session factory qui coince)

    PS: devior faire un new Candidat() pour pouvoir obtenir un object Candidat correspondant à un identifiant précis, c'est assez limite, point de vue design.

  9. #9
    Membre régulier
    Inscrit en
    Juillet 2008
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 119
    Points : 70
    Points
    70
    Par défaut
    d'accord merci de votre réponse.
    cette dois une autre problème,c'est que malgré j'ai commence le mapping a 0 j'obtiens des erreurs .
    je montionne que je travaille sur netbeans 6.5 et j'utilise apache tomcat comme serveur.
    tous les fichiers de mapping et les classes persistantes et le fichier HibernateUtil sont genere par netbeans .
    HibernateUtil
    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
     
    package util;
    import org.hibernate.cfg.AnnotationConfiguration;
    import org.hibernate.SessionFactory;
     
    /**
     * Hibernate Utility class with a convenient method to get Session Factory object.
     *
     * @author abdess
     */
    public class HibernateUtil {
        private static final SessionFactory sessionFactory;
     
        static {
            try {
                // Create the SessionFactory from standard (hibernate.cfg.xml) 
                // config file.
                sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
            } catch (Throwable ex) {
                // Log the exception. 
                System.err.println("Initial SessionFactory creation failed." + ex);
                throw new ExceptionInInitializerError(ex);
            }
        }
     
        public static SessionFactory getSessionFactory() {
            return sessionFactory;
        }
    }
    hibernate.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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    <?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.dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/dbrecrute</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">youp</property>
        <property name="current_session_context_class">thread</property>
        <mapping resource="data/Candidat.hbm.xml"/>
        <mapping resource="data/Languealertcv.hbm.xml"/>
        <mapping resource="data/Langue.hbm.xml"/>
        <mapping resource="data/Secteur.hbm.xml"/>
        <mapping resource="data/Ville.hbm.xml"/>
        <mapping resource="data/Privilege.hbm.xml"/>
        <mapping resource="data/Alertcv.hbm.xml"/>
        <mapping resource="data/Inscrirecand.hbm.xml"/>
        <mapping resource="data/Cv.hbm.xml"/>
        <mapping resource="data/Langueoffre.hbm.xml"/>
        <mapping resource="data/Avoirlangue.hbm.xml"/>
        <mapping resource="data/Offre.hbm.xml"/>
        <mapping resource="data/Agent.hbm.xml"/>
        <mapping resource="data/Alertoffre.hbm.xml"/>
        <mapping resource="data/Inscrireagen.hbm.xml"/>
        <mapping resource="data/Contract.hbm.xml"/>
        <mapping resource="data/Fonction.hbm.xml"/>
        <mapping resource="data/Inscrirerec.hbm.xml"/>
        <mapping resource="data/Usr.hbm.xml"/>
        <mapping resource="data/Recruteur.hbm.xml"/>
        <mapping resource="data/Civilite.hbm.xml"/>
        <mapping resource="data/Languecv.hbm.xml"/>
        <mapping resource="data/Societe.hbm.xml"/>
        <mapping resource="data/Formation.hbm.xml"/>
        <mapping resource="data/Competence.hbm.xml"/>
        <mapping resource="data/Niveauformation.hbm.xml"/>
        <mapping resource="data/Sejour.hbm.xml"/>
        <mapping resource="data/Experience.hbm.xml"/>
      </session-factory>
    </hibernate-configuration>
    le code de servlet :
    dans cet servlet j'essai tout simplement d'instancier un objet de type ville mais j'obtient une erreur
    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
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
     
    import data.Ville;
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.HashSet;
    import java.util.List;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import org.hibernate.Session;
    import org.hibernate.Transaction;
    import util.HibernateUtil;
     
    /**
     *
     * @author abdess
     */
    public class NewServlet extends HttpServlet {
        protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
            response.setContentType("text/html;charset=UTF-8");
            PrintWriter out = response.getWriter();
     
             Session session = HibernateUtil.getSessionFactory().getCurrentSession();
    		 session.beginTransaction();
    		 Ville ville =new Ville(888888,"france", new HashSet(0),new HashSet(0),new HashSet(0),new HashSet(0),new HashSet(0),new HashSet(0),new HashSet(0),new HashSet(0),new HashSet(0));
             HibernateUtil.getSessionFactory().close();
     
     
     
            try {
     
                out.println("<html>");
                out.println("<head>");
                out.println("<title>Servlet NewServlet</title>");  
                out.println("</head>");
                out.println("<body>");
                out.println("<h1>Servlet NewServlet at " + request.getContextPath () + "</h1>");
                out.println("</body>");
                out.println("</html>");
            } finally { 
                out.close();
            }
        } 
     
        // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
        /** 
         * Handles the HTTP <code>GET</code> method.
         * @param request servlet request
         * @param response servlet response
         * @throws ServletException if a servlet-specific error occurs
         * @throws IOException if an I/O error occurs
         */
        @Override
        protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
            processRequest(request, response);
        } 
     
        /** 
         * Handles the HTTP <code>POST</code> method.
         * @param request servlet request
         * @param response servlet response
         * @throws ServletException if a servlet-specific error occurs
         * @throws IOException if an I/O error occurs
         */
        @Override
        protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
            processRequest(request, response);
        }
     
        /** 
         * Returns a short description of the servlet.
         * @return a String containing servlet description
         */
        @Override
        public String getServletInfo() {
            return "Short description";
        }// </editor-fold>
     
    }
    le fichier mapping de la classe ville (genere par hibernate)
    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
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
     
    <?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 20 mai 2009 14:40:00 by Hibernate Tools 3.2.1.GA -->
    <hibernate-mapping>
        <class name="data.Ville" table="ville" catalog="dbrecrute">
            <id name="codepostale" type="int">
                <column name="CODEPOSTALE" />
                <generator class="assigned" />
            </id>
            <property name="nomville" type="string">
                <column name="NOMVILLE" length="20" />
            </property>
            <set name="alertcvs" inverse="true" table="villesalertcv">
                <key>
                    <column name="CODEPOSTALE" not-null="true" />
                </key>
                <many-to-many entity-name="data.Alertcv">
                    <column name="IDALERTCV" not-null="true" />
                </many-to-many>
            </set>
            <set name="alertcvs_1" inverse="false" table="mobilitegeoalertcv">
                <key>
                    <column name="CODEPOSTALE" not-null="true" />
                </key>
                <many-to-many entity-name="data.Alertcv">
                    <column name="IDALERTCV" not-null="true" />
                </many-to-many>
            </set>
            <set name="offres" inverse="false" table="mobilitegeooffre">
                <key>
                    <column name="CODEPOSTALE" not-null="true" />
                </key>
                <many-to-many entity-name="data.Offre">
                    <column name="IDOFFRE" length="9" not-null="true" />
                </many-to-many>
            </set>
            <set name="cvs" inverse="false" table="mobilitegeocv">
                <key>
                    <column name="CODEPOSTALE" not-null="true" />
                </key>
                <many-to-many entity-name="data.Cv">
                    <column name="IDCV" length="11" not-null="true" />
                </many-to-many>
            </set>
            <set name="alertoffres" inverse="true" table="mobilitegeoalertoffre">
                <key>
                    <column name="CODEPOSTALE" not-null="true" />
                </key>
                <many-to-many entity-name="data.Alertoffre">
                    <column name="IDALERTOFFRE" not-null="true" />
                </many-to-many>
            </set>
            <set name="experiences" inverse="true">
                <key>
                    <column name="CODEPOSTALE" not-null="true" />
                </key>
                <one-to-many class="data.Experience" />
            </set>
            <set name="usrs" inverse="true">
                <key>
                    <column name="CODEPOSTALE" not-null="true" />
                </key>
                <one-to-many class="data.Usr" />
            </set>
            <set name="societes" inverse="true">
                <key>
                    <column name="CODEPOSTALE" not-null="true" />
                </key>
                <one-to-many class="data.Societe" />
            </set>
            <set name="formations" inverse="true">
                <key>
                    <column name="CODEPOSTALE" not-null="true" />
                </key>
                <one-to-many class="data.Formation" />
            </set>
        </class>
    </hibernate-mapping>
    la classe ville (genere a l'aide de hibernate ):

    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
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
     
    package data;
    // Generated 20 mai 2009 14:39:41 by Hibernate Tools 3.2.1.GA
     
     
    import java.util.HashSet;
    import java.util.List;
    import java.util.Set;
    import org.hibernate.Session;
    import org.hibernate.Transaction;
    import util.HibernateUtil;
     
    /**
     * Ville generated by hbm2java
     */
    public class Ville  implements java.io.Serializable {
     
     
         private int codepostale;
         private String nomville;
         private Set alertcvs = new HashSet(0);
         private Set alertcvs_1 = new HashSet(0);
         private Set offres = new HashSet(0);
         private Set cvs = new HashSet(0);
         private Set alertoffres = new HashSet(0);
         private Set experiences = new HashSet(0);
         private Set usrs = new HashSet(0);
         private Set societes = new HashSet(0);
         private Set formations = new HashSet(0);
     
        public Ville() {
        }
     
     
        public Ville(int codepostale) {
            this.codepostale = codepostale;
        }
        public Ville(int codepostale, String nomville, Set alertcvs, Set alertcvs_1, Set offres, Set cvs, Set alertoffres, Set experiences, Set usrs, Set societes, Set formations) {
           this.codepostale = codepostale;
           this.nomville = nomville;
           this.alertcvs = alertcvs;
           this.alertcvs_1 = alertcvs_1;
           this.offres = offres;
           this.cvs = cvs;
           this.alertoffres = alertoffres;
           this.experiences = experiences;
           this.usrs = usrs;
           this.societes = societes;
           this.formations = formations;
        }
     
        public int getCodepostale() {
            return this.codepostale;
        }
     
        public void setCodepostale(int codepostale) {
            this.codepostale = codepostale;
        }
        public String getNomville() {
            return this.nomville;
        }
     
        public void setNomville(String nomville) {
            this.nomville = nomville;
        }
        public Set getAlertcvs() {
            return this.alertcvs;
        }
     
        public void setAlertcvs(Set alertcvs) {
            this.alertcvs = alertcvs;
        }
        public Set getAlertcvs_1() {
            return this.alertcvs_1;
        }
     
        public void setAlertcvs_1(Set alertcvs_1) {
            this.alertcvs_1 = alertcvs_1;
        }
        public Set getOffres() {
            return this.offres;
        }
     
        public void setOffres(Set offres) {
            this.offres = offres;
        }
        public Set getCvs() {
            return this.cvs;
        }
     
        public void setCvs(Set cvs) {
            this.cvs = cvs;
        }
        public Set getAlertoffres() {
            return this.alertoffres;
        }
     
        public void setAlertoffres(Set alertoffres) {
            this.alertoffres = alertoffres;
        }
        public Set getExperiences() {
            return this.experiences;
        }
     
        public void setExperiences(Set experiences) {
            this.experiences = experiences;
        }
        public Set getUsrs() {
            return this.usrs;
        }
     
        public void setUsrs(Set usrs) {
            this.usrs = usrs;
        }
        public Set getSocietes() {
            return this.societes;
        }
     
        public void setSocietes(Set societes) {
            this.societes = societes;
        }
        public Set getFormations() {
            return this.formations;
        }
     
        public void setFormations(Set formations) {
            this.formations = formations;
        }
     
            public List getVilles() throws Exception{
             Session session = HibernateUtil.getSessionFactory().getCurrentSession();
             Transaction transaction = null;
             List list=null;
             try{
                 transaction =session.beginTransaction();
                 list = session.createQuery("from Ville").list();
             }catch(Exception E){
                 if (transaction != null) {
                 throw E;
             }
         }
         finally {
                  //session.close();
                  HibernateUtil.getSessionFactory().close();
         }
          return list;
        }
     
     
    }
    voila l'erreur :
    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
     
    type Rapport d'exception
     
    message
     
    description Le serveur a rencontr� une erreur interne () qui l'a emp�ch� de satisfaire la requ�te.
     
    exception
     
    javax.servlet.ServletException: L'ex�cution de la servlet a lanc� une exception
    	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
     
    cause m�re
     
    java.lang.ExceptionInInitializerError
    	util.HibernateUtil.<clinit>(HibernateUtil.java:21)
    	NewServlet.processRequest(NewServlet.java:24)
    	NewServlet.doGet(NewServlet.java:57)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
     
    cause m�re
     
    org.hibernate.MappingException: Foreign key (FK253521055635EC25:contractcv [IDCV])) must have same number of columns as the referenced primary key (cv [IDCV,IDCAND])
    	org.hibernate.mapping.ForeignKey.alignColumns(ForeignKey.java:90)
    	org.hibernate.mapping.ForeignKey.alignColumns(ForeignKey.java:73)
    	org.hibernate.cfg.Configuration.secondPassCompileForeignKeys(Configuration.java:1263)
    	org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1170)
    	org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:324)
    	org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1286)
    	org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859)
    	util.HibernateUtil.<clinit>(HibernateUtil.java:17)
    	NewServlet.processRequest(NewServlet.java:24)
    	NewServlet.doGet(NewServlet.java:57)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
     
    note La trace compl�te de la cause m�re de cette erreur est disponible dans les fichiers journaux de Apache Tomcat/6.0.18.

  10. #10
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    dans une de tes classes, tu as un clé étrangère "contractcv" qui est mappé sur une colonne IDCV. Hors, elle est utilisée dans une relation qui pointe sur un objet donc la primary key utilise deux colonnes ([IDCV,IDCAND]). Donc ta foreygn key et et primary key sont incompatibles.

  11. #11
    Membre régulier
    Inscrit en
    Juillet 2008
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 119
    Points : 70
    Points
    70
    Par défaut
    je Vous remercie infiniment

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

Discussions similaires

  1. Instance d'une classe fille à partir d'une classe mère
    Par Mathieu Salles dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 17/10/2012, 16h09
  2. Réponses: 6
    Dernier message: 14/12/2008, 02h12
  3. Réponses: 4
    Dernier message: 06/04/2008, 18h34
  4. Héritage d'une classe MFC et d'une classe non MFC
    Par Etienne Paquette dans le forum MFC
    Réponses: 7
    Dernier message: 04/12/2007, 20h19
  5. Réponses: 14
    Dernier message: 15/12/2005, 18h46

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