Spring MVC 4.2.2 和 Hibernate 5.0.2 给出错误
Spring MVC 4.2.2 and Hibernate 5.0.2 giving error
以下是 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>
我从 "spring-orm" pom 中选择了 Hibernate 版本详细信息,发现 Hibernate 5.0.2 与 Spring 4.2.2
兼容
在 Spring core 和 Hibernate 的情况下具有相同的依赖关系,它工作正常并给出了预期的结果。
但是使用 Spring MVC 和 Hibernate 集成,它给出以下错误
Invocation of init method failed; nested exception is
java.lang.NoSuchMethodError:
org.hibernate.cfg.annotations.reflection.JPAMetadataProvider.(Lorg/hibernate/boot/spi/MetadataBuildingOptions;)V
如果需要更多信息,请在评论部分提出。我将提供整个配置细节。
提前致谢。 :-)
从 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 dependencies 上有冲突。(参考问题上的图片)。
hibernate-annotations 不是必需的,它依赖于旧版本的 hibernate-core 和 hibernate-公共注释
hibernate-commons-annotations(版本 5.0.2)作为依赖 jar 存在于 hibernate-core 中。所以不需要在 pom.xml
中提及旧版本
以下是 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>
我从 "spring-orm" pom 中选择了 Hibernate 版本详细信息,发现 Hibernate 5.0.2 与 Spring 4.2.2
兼容在 Spring core 和 Hibernate 的情况下具有相同的依赖关系,它工作正常并给出了预期的结果。 但是使用 Spring MVC 和 Hibernate 集成,它给出以下错误
Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: org.hibernate.cfg.annotations.reflection.JPAMetadataProvider.(Lorg/hibernate/boot/spi/MetadataBuildingOptions;)V
如果需要更多信息,请在评论部分提出。我将提供整个配置细节。
提前致谢。 :-)
从 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 dependencies 上有冲突。(参考问题上的图片)。
hibernate-annotations 不是必需的,它依赖于旧版本的 hibernate-core 和 hibernate-公共注释
hibernate-commons-annotations(版本 5.0.2)作为依赖 jar 存在于 hibernate-core 中。所以不需要在 pom.xml
中提及旧版本