我正嘗試將一個Java域和服務層與Grails應用程序集成。 Java項目使用Maven構建,Grails項目從Maven回購項目加載JAR。該服務項目包含一個XML Spring配置文件,它定義了一堆Spring bean。我試圖使這些提供給Grails的應用程序,通過加載這些豆類在grails-app/conf/spring/resources.groovy
Grails和JPA集成
beans = {
importBeans('classpath:/applicationContext-services.xml')
}
人在這個文件中的豆是LocalContainerEntityManagerFactoryBean
一個實例。在試圖創建這個bean時,我得到的錯誤:
Error creating bean with name 'entityManagerFactory' defined in class path resource [applicationContext-services.xml]: Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: javax.persistence.spi.PersistenceUnitInfo.getValidationMode()Ljavax/persistence/ValidationMode;
在Spring的JIRA基於this issue,它會出現在underlyiing問題是Spring和Hibernate/JPA版本之間出現不兼容。看來,我使用的是:
- 春3.0.5.RELEASE
- 休眠3.6.0.Final
- 的Hibernate JPA-2.0-API 1.0.0.Final
我嘗試從Grails應用程序中刪除Hibernate插件,但似乎沒有任何區別。
謝謝,我需要降級Hibernate和Hibernate-JPA JAR或只是前者? –
我並不積極,但我相信你必須使用hibernate-entitymanager而不是jpa-2.0引用。您還必須添加更多的hibernate引用,因爲舊版本將驗證程序和註釋等內容分開。一種痛苦:( –
我不認爲你有任何更多的具體信息需要的變化? –