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 :

Erreur 'unknown entity'


Sujet :

Hibernate Java

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Erreur 'unknown entity'
    Bonjour

    Voilà, j'ai mon projet Java lancé dans Eclipse. j'ai téléchargé hibernate 5.3
    J'ai suivi ce tuto : http://www.simplecodestuffs.com/hibe...ng-annotation/
    il demande d'utiliser hibernate 4.2

    Voici mon arbo dans eclipse :
    Nom : arbo.jpg
Affichages : 2389
Taille : 58,4 Ko

    Voici hibernate.cfg.xml qui configure 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
    <!DOCTYPE hibernate-configuration PUBLIC
            "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
            "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
     
    <hibernate-configuration>
     
    <session-factory>
            <!-- Database connection settings -->
            <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
            <property name="hibernate.connection.username">root</property>
            <property name="hibernate.connection.password">root</property>
            <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/test</property>
     
     
          	<property name="hibernate.hbm2ddl.auto">create</property>
     
            <!-- Echo all executed SQL to sysout -->
            <property name="show_sql">true</property>
     
     
            <!-- Map Entity Class -->
            <mapping resource="entity.Se.hbm.xml"/>
        	<mapping class="entity.StudentEntity"></mapping>
     
     
    </session-factory>
    </hibernate-configuration>
    Voici HibernateUtil.java qui doit enregistrer un objet en bdd

    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
    package util;
     
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.Transaction;
    import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
    import org.hibernate.cfg.Configuration;
    import org.hibernate.service.ServiceRegistry;
     
    import entity.StudentEntity;
     
     
    public class HibernateUtil {
     
            public static void main(String[] args) {
     
            Configuration cf = new Configuration().configure("hibernate.cfg.xml");
     
            StandardServiceRegistryBuilder srb = new StandardServiceRegistryBuilder();
            srb.applySettings(cf.getProperties());
            ServiceRegistry sr = srb.build();
            SessionFactory sf = cf.buildSessionFactory(sr);
     
            Session session = sf.openSession();
     
            StudentEntity std = new StudentEntity();
                    std.setId(24); // Primary Key
                    std.setName("Jamil");
                    std.setDepartment("ECE");
                    std.setCollege("SKCET");
     
                    Transaction tx = session.beginTransaction();
                    session.save(std);
                    tx.commit();
                    System.out.println("Object saved successfully.....!!");
                    session.close();
                    sf.close();
            }
    }

    Voici la classe StudentEntity.java :

    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
    package entity;
     
    import javax.persistence.*;
     
     
    @Entity
    @Table(name = "STUDENT")
    public class StudentEntity {
     
            @Id
            @Column(name = "ID")
            private int id;
     
            @Column(name = "NAME")
            private String name;
     
            @Column(name = "DEPARTMENT")
            private String department;
     
            @Column(name = "COLLEGE")
            private String college;
     
     
    // Create Getters and Setters
     
            public int getId() {
                return id;
            }
            public void setId(Integer id) {
                this.id = id;
            }  
     
            public String getName() {
                return name;
            }
            public void setName(String name) {
                this.name = name;
            }  
     
            public String getDepartment() {
                return department;
            }
            public void setDepartment(String department) {
                this.department = department;
            }  
     
            public String getCollege() {
                return college;
            }
            public void setCollege(String college) {
                this.college = college;
            }  
     
    }

    Suite à un "run as java", j'ai l'erreur suivante Unknown entity: entity.StudentEntity alors que la classe existe. :

    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
    août 02, 2016 6:03:05 PM org.hibernate.Version logVersion
    INFO: HHH000412: Hibernate Core {5.2.1.Final}
    août 02, 2016 6:03:05 PM org.hibernate.cfg.Environment <clinit>
    INFO: HHH000206: hibernate.properties not found
    août 02, 2016 6:03:05 PM org.hibernate.cfg.Environment buildBytecodeProvider
    INFO: HHH000021: Bytecode provider name : javassist
    août 02, 2016 6:03:05 PM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit>
    INFO: HCANN000001: Hibernate Commons Annotations {5.0.1.Final}
    août 02, 2016 6:03:05 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
    WARN: HHH10001002: Using Hibernate built-in connection pool (not for production use!)
    août 02, 2016 6:03:05 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
    INFO: HHH10001005: using driver [com.mysql.jdbc.Driver] at URL [jdbc:mysql://localhost:3306/test]
    août 02, 2016 6:03:05 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
    INFO: HHH10001001: Connection properties: {user=root, password=****}
    août 02, 2016 6:03:05 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
    INFO: HHH10001003: Autocommit mode: false
    août 02, 2016 6:03:05 PM org.hibernate.engine.jdbc.connections.internal.PooledConnections <init>
    INFO: HHH000115: Hibernate connection pool size: 20 (min=1)
    Tue Aug 02 18:03:05 CEST 2016 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
    août 02, 2016 6:03:05 PM org.hibernate.dialect.Dialect <init>
    INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQL5Dialect
    août 02, 2016 6:03:06 PM org.hibernate.tool.schema.internal.SchemaCreatorImpl applyImportSources
    INFO: HHH000476: Executing import script 'org.hibernate.tool.schema.internal.exec.ScriptSourceInputNonExistentImpl@8f106e'
    Exception in thread "main" org.hibernate.MappingException: Unknown entity: entity.StudentEntity
    	at org.hibernate.metamodel.internal.MetamodelImpl.entityPersister(MetamodelImpl.java:620)
    	at org.hibernate.internal.SessionImpl.getEntityPersister(SessionImpl.java:1596)
    	at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:104)
    	at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:192)
    	at org.hibernate.event.internal.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:38)
    	at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:177)
    	at org.hibernate.event.internal.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:32)
    	at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:73)
    	at org.hibernate.internal.SessionImpl.fireSave(SessionImpl.java:668)
    	at org.hibernate.internal.SessionImpl.save(SessionImpl.java:660)
    	at org.hibernate.internal.SessionImpl.save(SessionImpl.java:655)
    	at util.HibernateUtil.main(HibernateUtil.java:33)

    Du coup j'ai essayé de créer Se.hbm.xml dans le pacquage entity(Mais dans le tuto il a l'air de dire que ce n'est pas nécessaire. :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?xml version="1.0"?><!DOCTYPE hibernate-mapping
      PUBLIC "-//Hibernate/Hibernate Mapping DTD 2.0//EN"
      "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd"><hibernate-mapping>
      <class name="entity.StudentEntity" table="STUDENT">
        <id name="id" type="int" column="id">
          <generator class="native"/>
        </id>
        <property name="name" type="string" not-null="true" />
        <property name="departement" type="string" not-null="true" />
        <property name="college" type="date" />
      </class>
    </hibernate-mapping>
    Résultat : J'ai toujours la même 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
    août 02, 2016 6:03:05 PM org.hibernate.Version logVersion
    INFO: HHH000412: Hibernate Core {5.2.1.Final}
    août 02, 2016 6:03:05 PM org.hibernate.cfg.Environment <clinit>
    INFO: HHH000206: hibernate.properties not found
    août 02, 2016 6:03:05 PM org.hibernate.cfg.Environment buildBytecodeProvider
    INFO: HHH000021: Bytecode provider name : javassist
    août 02, 2016 6:03:05 PM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit>
    INFO: HCANN000001: Hibernate Commons Annotations {5.0.1.Final}
    août 02, 2016 6:03:05 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
    WARN: HHH10001002: Using Hibernate built-in connection pool (not for production use!)
    août 02, 2016 6:03:05 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
    INFO: HHH10001005: using driver [com.mysql.jdbc.Driver] at URL [jdbc:mysql://localhost:3306/test]
    août 02, 2016 6:03:05 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
    INFO: HHH10001001: Connection properties: {user=root, password=****}
    août 02, 2016 6:03:05 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
    INFO: HHH10001003: Autocommit mode: false
    août 02, 2016 6:03:05 PM org.hibernate.engine.jdbc.connections.internal.PooledConnections <init>
    INFO: HHH000115: Hibernate connection pool size: 20 (min=1)
    Tue Aug 02 18:03:05 CEST 2016 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
    août 02, 2016 6:03:05 PM org.hibernate.dialect.Dialect <init>
    INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQL5Dialect
    août 02, 2016 6:03:06 PM org.hibernate.tool.schema.internal.SchemaCreatorImpl applyImportSources
    INFO: HHH000476: Executing import script 'org.hibernate.tool.schema.internal.exec.ScriptSourceInputNonExistentImpl@8f106e'
    Exception in thread "main" org.hibernate.MappingException: Unknown entity: entity.StudentEntity
    	at org.hibernate.metamodel.internal.MetamodelImpl.entityPersister(MetamodelImpl.java:620)
    	at org.hibernate.internal.SessionImpl.getEntityPersister(SessionImpl.java:1596)
    	at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:104)
    	at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:192)
    	at org.hibernate.event.internal.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:38)
    	at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:177)
    	at org.hibernate.event.internal.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:32)
    	at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:73)
    	at org.hibernate.internal.SessionImpl.fireSave(SessionImpl.java:668)
    	at org.hibernate.internal.SessionImpl.save(SessionImpl.java:660)
    	at org.hibernate.internal.SessionImpl.save(SessionImpl.java:655)
    	at util.HibernateUtil.main(HibernateUtil.java:33)

    J'ai essayé pleins de truc du style changer @Entity par l'url, et rien à faire cela ne marche pas, pourtant tout est logique.
    Images attachées Images attachées  

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

Discussions similaires

  1. Erreur "Unknown entity"
    Par daydream123 dans le forum Spring
    Réponses: 2
    Dernier message: 05/11/2011, 11h39
  2. [Hibernate 3.2.1] Erreur "Unknown entity"
    Par seddik_saber dans le forum Hibernate
    Réponses: 2
    Dernier message: 11/09/2011, 17h33
  3. [Mapping] Erreur "Unknown entity"
    Par Fatemy dans le forum Hibernate
    Réponses: 1
    Dernier message: 19/08/2011, 10h28
  4. L'erreur org.hibernate.MappingException: Unknown entity
    Par proganas dans le forum Hibernate
    Réponses: 1
    Dernier message: 22/07/2010, 18h20
  5. [Eclipse / Jonas] Erreur "jonas-entity missing for bean"
    Par citygirl dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 16/05/2005, 11h59

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