Грааль и JPA интеграция - PullRequest
0 голосов
/ 26 июля 2011

Я пытаюсь интегрировать домен Java и сервисный уровень с приложением Grails.Проекты Java создаются с помощью Maven, а проект Grails загружает файлы JAR из репозитория Maven.Проект службы содержит файл конфигурации XML Spring, который определяет группу компонентов Spring.Я пытаюсь сделать их доступными для приложения Grails, загружая эти bean-компоненты в grails-app/conf/spring/resources.groovy

beans = {    
    importBeans('classpath:/applicationContext-services.xml')
}

Один из bean-компонентов в этом файле является экземпляром LocalContainerEntityManagerFactoryBean.При попытке создать этот бин я получаю сообщение об ошибке:

Ошибка создания бина с именем 'entityManagerFactory', определенным в ресурсе пути к классу [applicationContext-services.xml]: сбой вызова метода init;вложенным исключением является java.lang.NoSuchMethodError: javax.persistence.spi.PersistenceUnitInfo.getValidationMode () Ljavax / persistence / ValidationMode;

На основании этой проблемы в Spring JIRможет показаться, что основной проблемой является несовместимость версий Spring и Hibernate / JPA.Похоже, что я использую:

  • Spring 3.0.5.RELEASE
  • Hibernate 3.6.0.Final
  • Hibernate-jpa-2.0-api 1.0.0.Final

Я пытался удалить плагин Hibernate из приложения Grails, но, похоже, это не имело никакого значения.

Ответы [ 3 ]

1 голос
/ 26 июля 2011

У меня была похожая проблема, и мне пришлось использовать понижение ресурсов jpa до hibernate 3.3.2. Grails 2.0 будет иметь поддержку Hibernate 3.6.

0 голосов
/ 12 августа 2012

У вас есть, вероятно, другие банки, которые определяют (ы) javax.persistence.spi.PersistenceUnitInfo избавиться от них. Убедитесь, что только hibernate-jpa-2.0-api-1.0.1.Final.jar находится в пути к классам.

0 голосов
/ 25 июля 2012

Добавьте это в вашу папку pom.xml или 'lib':

    <dependency>
        <groupId>org.hibernate.javax.persistence</groupId>
        <artifactId>hibernate-jpa-2.0-api</artifactId>
        <version>1.0.0.Final</version>
    </dependency>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...