2013-06-04 2 views
0

У меня есть проект с Hibernate.I попытался прочитать файл конфигурации hibernate.cfg и получил эту ошибку:Hibernate Mapping Ошибка: MappingException: экземпляр AnnotationConfiguration

Error creando una factoria de session.org.hibernate.MappingException: An AnnotationConfiguration instance is required to use <mapping class="com/david/Categoria"/> 
jun 04, 2013 10:19:26 AM org.apache.catalina.core.StandardWrapperValve invoke 
SEVERE: El Servlet.service() para el servlet [ControladorLibros] en el contexto con ruta [/App01HTML] lanzó la excepción [La ejecución del Servlet lanzó una excepción] con causa raíz 
org.hibernate.MappingException: An AnnotationConfiguration instance is required to use <mapping class="com/david/Categoria"/> 
    at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1524) 
    at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1479) 
    at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1458) 
    at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1432) 
    at org.hibernate.cfg.Configuration.configure(Configuration.java:1352) 
    at org.hibernate.cfg.Configuration.configure(Configuration.java:1338) 
    at com.david.HibernateHelper.buildSessionFactory(HibernateHelper.java: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="connection.driver_class">com.mysql.jdbc.Driver</property> 
     <property name="connection.url">jdbc:mysql://localhost/arquitecturajava</property> 
     <property name="connection.username">root</property> 
     <property name="connection.password">root</property> 
     <property name="connection.pool_size">5</property> 
     <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property> 
     <property name="show_sql">true</property> 
     <mapping class="com/david/Categoria"></mapping> 
     <mapping class="com/david/Libro"></mapping> 
    </session-factory> 
</hibernate-configuration> 

Не принимайте отображения строк класса.

Я создаю де конфигурацию, подобную этот код:

private static SessionFactory buildSessionFactory() 
    { 
     try 
     { 

      return new Configuration().configure().buildSessionFactory(); 
     } 
     catch (Throwable ex) 
     { 
      System.err.println("Error creando una factoria de session." + ex); 
      throw new ExceptionInInitializerError(ex); 
     } 
    } 

и мои библиотеки проекта:

enter image description here

Любую идею?

+0

Какая версия Hibernate вы используете? BTW, fuly квалифицированное имя класса com.david.Categoria а не com/david/Категория. –

+0

Ошибка аналогична с com/david/категорией или com.david.Categoria. – Davidin073

+0

Моя версия Hibernate <4, но я не уверен, что это 3.5 или 3.3 или другое. – Davidin073

ответ

0

Я думаю, вам нужна библиотека аннотаций Hibernate в вашем классе. Вы можете добавить его вручную, загрузив его с сайта Hibernate, или вы можете добавить эту зависимость Maven:

<dependency> 
    <groupId>hibernate-annotations</groupId> 
    <artifactId>hibernate-annotations</artifactId> 
    <version>3.3.0.GA</version> 
</dependency> 

И затем использовать класс AnnotationConfiguration вместо конфигурации для настройки sessionFactory.

return new AnnotationConfiguration().configure().buildSessionFactory(); 

Затем вы должны исправить квалифицированное имя класса, так как @JB Nizet предложил вам в своем комментарии.

Я думаю, что это решит вашу проблему.

EDIT: извините, я думаю, что у вас есть библиотека аннотаций в вашем пути к классу, просто используйте класс AnnotationConfiguration вместо Configuration, когда вы создаете свой sessionFactory.

+1

+1, хотя это необходимо только для старых версий Hibernate. AnnotationConfiguration теперь устарела, и все, что было сделано, было перенесено в Configuration. –

+0

AnnotatioConfiguration не существует в пакете org.hibernate.cfg. Не рекомендуется. И я не использую maven. Я добавил библиотеку hibernate-commons-annotations-3.3.0.ga.jar. – Davidin073

+0

eternay или JB Nizet, знаете ли вы, какие библиотеки необходимо добавить, например, с Hibernate 4.3, последняя версия? – Davidin073

0

Проблема была в библиотеках. Это решение:

enter image description here

Много thank's к Eternay и JB Nizet.

Смежные вопросы