2013-07-11 97 views
0

我创建了一个瓶子模块的Hibernate注解连同EntityManager的

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

休眠依赖和罐模块编译正确。该JAR模块是由具有

<dependency> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-entitymanager</artifactId> 
    <version>3.6.0.Final</version> 
</dependency> 

在运行时休眠相关性的战争模块引用战争模块提供的

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor#0': Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource 

异常,其次是

java.lang.NoSuchMethodError: org.hibernate.mapping.SimpleValue.<init>(Lorg/hibernate/mapping/Table;)V 

看起来hibernate的版本是不兼容的。一旦从Jar模块中删除了依赖关系。一切正常。但是我需要该Jar模块的依赖关系。我该如何克服这一点?

回答

0

由于Hibernate 3.6 hibernate-annotations合并到hibernate-core(这是hibernate-entitymanager的传递依赖项)。您不需要明确声明hibernate-annotations

+1

但正如他所说,他需要jar中的hibernate依赖。 – Johanneke

+0

我在我的Jar模块中有hibernate注释。我需要通过依赖来解决它。否则,它会产生编译错误。什么是依赖应该被用来解决这个独立Jar模块的hibernate注释。这些有特定的版本吗? – MCF

0

难道你不能确定jar和war中的hibernate版本是否一样?

+0

我也是通过将3.5.6-Final添加到两个依赖项来尝试这种方式。虽然同样的例外。 – MCF

+0

maven依赖关系树显示什么? 'mvn依赖:树'我想。也许还有一些其他工件依赖于另一个hibernate版本? – Johanneke