Java Hibernate映射错误:映射异常:AnnotationConfiguration实例

Java Hibernate映射错误:映射异常:AnnotationConfiguration实例,java,eclipse,hibernate,annotations,mapping,Java,Eclipse,Hibernate,Annotations,Mapping,我有一个Hibernate项目。我试图读取配置文件Hibernate.cfg,但出现以下错误: 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.ap

我有一个Hibernate项目。我试图读取配置文件Hibernate.cfg,但出现以下错误:

 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)
我的项目库包括:


有什么想法吗?

我想您需要在类路径中使用Hibernate注释库。您可以手动添加,从Hibernate站点下载,也可以添加此Maven依赖项:

<dependency>
    <groupId>hibernate-annotations</groupId>
    <artifactId>hibernate-annotations</artifactId>
    <version>3.3.0.GA</version>
</dependency>
然后您必须更正类的限定名,正如@JB Nizet在他的评论中建议您的那样

我想这会解决你的问题


编辑:很抱歉,我认为您的类路径中有注释库,在构建
会话工厂时,只需使用
注释配置
类而不是
配置
,问题在于库。
return new AnnotationConfiguration().configure().buildSessionFactory();
这就是解决方案:


非常感谢Eternay和JB Nizet。

您使用的是哪个版本的Hibernate?顺便说一句,类的完全限定名是com.david.Categoria,而不是com/david/Categoria。错误与com/david/Categoria或com.david.Categoria相同。我的Hibernate版本是<4,但我不确定它是3.5或3.3或其他。查看jar的名称会有所帮助。3.3和3.5是旧版本。你至少应该更新到最新的3.x版本。我没有一个包含所有jar的文件夹。最初我下载了这个rar:hibernate-search-4.3.0.CR1。但是我无法操作它,所以我下载了jar到jar.+1,尽管这只是旧版本Hibernate所必需的。AnnotationConfiguration现在已被弃用,它所做的一切都已迁移到Configuration。AnnotationConfiguration在org.hibernate.cfg包中不存在。不推荐使用。我没有使用maven。我已经添加了hibernate-commons-annotations-3.3.0.ga.jar library.eternay或JB-niset,您知道需要添加哪些库吗,例如hibernate 4.3的最新版本?转到,下载您想要的版本:它包含hibernate需要的所有jar。通过Ivy使用hibernate 4.1.7,我有hibernate-core-4.1.7.Final,antlr-2.7.7,jboss-logging-3.1.0.GA、jboss-transaction-api_1.1_spec-1.0.0.Final、dom4j-1.6.1、hibernate-jpa-2.0-api-1.0.1.Final、javassit-3.15.0-GA和hibernate-commons-annotations-4.0.1.Final。你应该用Maven或Ivy来控制这一切。
<dependency>
    <groupId>hibernate-annotations</groupId>
    <artifactId>hibernate-annotations</artifactId>
    <version>3.3.0.GA</version>
</dependency>
return new AnnotationConfiguration().configure().buildSessionFactory();