Spring MVC 4.2.2和Hibernate 5.0.2给出了错误

时间:2015-11-12 09:10:25

标签: java spring hibernate spring-mvc spring-orm

以下是pom.xml上的依赖项版本详细信息

<!-- spring --> 
<org.springframework-version>4.2.2.RELEASE</org.springframework-version>
<org.springframework.data-version>1.11.0.RELEASE</org.springframework.data-version>

<!-- hibernate --> 
<org.hibernate.hibernate-core>5.0.2.Final</org.hibernate.hibernate-core> 
<org.hibernate.hibernate-annotations>3.5.6-Final</org.hibernate.hibernate-annotations> 
<org.hibernate.hibernate-commons-annotations>3.2.0.Final</org.hibernate.hibernate-commons-annotations> 
<org.hibernate.hibernate-validator>5.2.2.Final</org.hibernate.hibernate-validator>

我从&#34; spring-orm&#34;中选择了Hibernate版本的详细信息。 pom并发现Hibernate 5.0.2与Spring 4.2.2兼容

Spring core Hibernate 的情况下具有相同的依赖关系,它可以正常工作并提供所需的结果。 但是通过 Spring MVC Hibernate 集成,它会给出以下错误

  

调用init方法失败;嵌套异常是   java.lang.NoSuchMethodError:   。org.hibernate.cfg.annotations.reflection.JPAMetadataProvider(Lorg /休眠/引导/ SPI / MetadataBuildingOptions;)V

如果需要更多信息,请填写评论部分。我将提供完整的配置细节。

先谢谢。 : - )

Dependency Hierarchy

1 个答案:

答案 0 :(得分:1)

从pom.xml中删除以下依赖项已解决了这个问题。

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-annotations</artifactId>
    <version>3.5.6-Final</version>
</dependency>
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-commons-annotations</artifactId>
    <version>3.2.0.Final</version>
</dependency>

由于存在这种依赖关系,Resolved依赖项存在冲突。(请参阅问题所附的图片。)

hibernate-annotations 不是必需的,它依赖于较旧版本的 hibernate-core hibernate-commons-annotations

hibernate-commons-annotations (版本5.0.2)作为依赖jar存在于 hibernate-core 中。因此,不需要在pom.xml中提及旧版本