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 :

Probleme avec le Save()


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 25
    Par défaut Probleme avec le Save()
    bonjour,
    Mon probleme c'est que j'arrive pas a inserer les données dans ma base Mysql, sachant que la lecture marche parfaitement, voila l'erreur que j'ai eu :
    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
    javax.servlet.ServletException: org.hibernate.MappingException: Unknown entity: hibernate.mappings.Client
    	org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:535)
    	org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:433)
    	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
    	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
     
     
    cause m�re 
     
    org.hibernate.MappingException: Unknown entity: hibernate.mappings.Client
    	org.hibernate.impl.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:550)
    	org.hibernate.impl.SessionImpl.getEntityPersister(SessionImpl.java:1338)
    	org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:98)
    	org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:187)
    	org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
    	org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:172)
    	org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)
    	org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
    	org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:535)
    	org.hibernate.impl.SessionImpl.save(SessionImpl.java:523)
    	org.hibernate.impl.SessionImpl.save(SessionImpl.java:519)
    	com.hibernate.utils.InsertUser.insererUser(InsertUser.java:40)
    	action.struts.RegisterAction.execute(RegisterAction.java:47)
    	org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
    	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
    	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    et voila mon fichier 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
    <?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.DerbyDialect</property>
        <property name="hibernate.connection.driver_class">org.apache.derby.jdbc.ClientDriver</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/yassine</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.pool_size">1</property>
        <!-- Enable Hibernate's automatic session context management -->
        <property name="current_session_context_class">thread</property>
        <property name="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
        <mapping class="hibernate.mappings.Client" package="hibernate.mappings" resource="hibernate/mappings/Client.hbm.xml"/>
        <mapping resource="hibernate/mappings/Client.hbm.xml"/>
        <mapping resource="hibernate.hbm.xml"/>
      </session-factory>
    </hibernate-configuration>
    et aussi le fichier Client.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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <hibernate-mapping>
      <class name="hibernate.mappings.Client" table="client">
        <id name="id" type="java.lang.Integer">
          <column name="id"/>
          <generator class="identity"/>
        </id>
        <property name="login" type="string">
          <column length="50" name="login" not-null="true"/>
        </property>
        <property name="passe" type="string">
          <column length="50" name="passe" not-null="true"/>
        </property>
        <property name="nom" type="string">
          <column length="50" name="nom" not-null="true"/>
        </property>
        <property name="prenom" type="string">
          <column length="50" name="prenom" not-null="true"/>
        </property>
        <property name="age" type="integer">
          <column length="50" name="age" not-null="true"/>
        </property>
      </class>
    </hibernate-mapping>
    ensuite la classe Client :
    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
    package hibernate.mappings;
     
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
     
    /**
     *
     * @author yassinert
     */
    public class Client implements java.io.Serializable{
        private static final long serialVersionUID = 1L;
        private int id;
        private String login;
        private String passe;
        private String nom;
        private String prenom;
        private int age;
        public Client (){
     
        }
        public int getId()
        {
            return id;
        }
     
        public String getLogin()
        {
            return login;
        }
     
        public String getPasse()
        {
            return passe;
        }
        public String getNom()
        {
            return nom;
        }
     
        public String getPrenom()
        {
            return prenom;
        }
     
        public int getAge()
        {
            return age;
        }
     
        public void setId(int i)
        {
            id=i;
        }
        public void setLogin(String l)
        {
            login=l;
        }
     
        public void setPasse(String p)
        {
            passe=p;
        }
     
        public void setNom(String n)
        {
            nom=n;
        }
     
        public void setPrenom(String p)
        {
            prenom=p;
        }
        public void setAge(int a)
        {
            age=a;
        }
    }
    et enfin la structure de ma table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    +--------+-------------+------+-----+---------+----------------+
    | Field     | Type           | Null | Key | Default | Extra          |
    +--------+-------------+------+-----+---------+----------------+
    | id         | int(11)        | NO   | PRI | NULL    | auto_increment |
    | login     | varchar(50) | NO   |     |         |                |
    | passe   | varchar(50) | NO   |     |         |                |
    | nom     | varchar(50) | NO   |     |         |                |
    | prenom | varchar(50) | NO   |     |         |                |
    | age      | int(11)        | NO   |     |         |                |
    +--------+-------------+------+-----+---------+----------------+
    Merci d'avance.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 75
    Par défaut
    essaye sans la ligne suivante dans ton hibernate.cfg.xml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        <mapping class="hibernate.mappings.Client" package="hibernate.mappings" resource="hibernate/mappings/Client.hbm.xml"/>
    ++@

  3. #3
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 25
    Par défaut
    c'est fais mais toujours le meme message d'erreur.

  4. #4
    Expert éminent
    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 : 46
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    es-tu sur que ton fichier de config hibernate est bien lu? Parce que ceci que tu as dedans:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        <mapping class="hibernate.mappings.Client" package="hibernate.mappings" resource="hibernate/mappings/Client.hbm.xml"/>
        <mapping resource="hibernate/mappings/Client.hbm.xml"/>
    devrais déjà empeche la factory de se créer car tu mappe deux fois la même classe. Tu ne devrais meme pas arriver à obtenir une session avec ça.

  5. #5
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 25
    Par défaut
    oui j'ai deja remarqué ca, mais toujours le meme probleme,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?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.DerbyDialect</property>
        <property name="hibernate.connection.driver_class">org.apache.derby.jdbc.ClientDriver</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/yassine</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.pool_size">1</property>
        <mapping resource="hibernate/mappings/Client.hbm.xml"/>
      </session-factory>
     
    </hibernate-configuration>

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 75
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/yassine</property>

    Ne doit-elle pas être :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <property name="hibernate.connection.url">jdbc:derby://localhost:3306/yassine</property>

    ++@

  7. #7
    Expert éminent
    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 : 46
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par yassinert Voir le message
    oui j'ai deja remarqué ca, mais toujours le meme probleme,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?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.DerbyDialect</property>
        <property name="hibernate.connection.driver_class">org.apache.derby.jdbc.ClientDriver</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/yassine</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.pool_size">1</property>
        <mapping resource="hibernate/mappings/Client.hbm.xml"/>
      </session-factory>
     
    </hibernate-configuration>
    Non ce qui m'inquiète, c'est que tu a su obtenir une session avec un fichier de config erroné au départ! Ce qui me laisse à penser que t'as un autre fichier de configuration et que c'est celui là qui est utilisé. Peux tu nous dire

    1) comment tu crée ta SessionFactory (code)
    2) où tu a placé exactement ce fichier de config dans ton projet
    3) Si t'as des erreurs de créatin de la session factory dans le cas ou tu met délibérément n'importe quoi dans le fichier de config (ce qui permettra d'être sur qu'il est pris en compte)

Discussions similaires

  1. Probleme avec la fonction save
    Par dratrao dans le forum Scilab
    Réponses: 1
    Dernier message: 13/08/2015, 14h19
  2. Problem avec Excel save
    Par DreamCatcher84 dans le forum C#
    Réponses: 1
    Dernier message: 02/01/2011, 03h56
  3. [Débutant] Probleme avec save et l'option -append
    Par on2101 dans le forum MATLAB
    Réponses: 2
    Dernier message: 03/11/2009, 00h13
  4. probleme avec la methode save
    Par chady dans le forum Hibernate
    Réponses: 5
    Dernier message: 06/02/2009, 16h50

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