2013-07-11 44 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