2016-09-08 17 views
0

я использую различные отделенные модули в моем приложении ..Используйте persistence.xml объявленного в другом модуле

JPA-модуль: содержит объекты JPA и persistence.xml

остального-модуль: где я используя JAX-RS-сервисы и Hibernate для сохранения данных ...

Я вставляю сущность-манипулятор с помощью Guice, однако у меня есть ошибка (если я не помещаю persistence.xml под модуль rest)

2016-09-07 22:09:06.704:WARN:oejw.WebAppContext:main: Failed startup of context [email protected]{/services,file:///Users/rest-module/target/rest-module-1.0-SNAPSHOT/,STARTING}{../rest-module/target/rest-module-1.0-SNAPSHOT} 
javax.persistence.PersistenceException: No Persistence provider for EntityManager named local_persist_unit 

Вот содержание моего persistence.xml:

<persistence-unit name="local_persist_unit" transaction-type="RESOURCE_LOCAL"> 
     <provider>org.hibernate.ejb.HibernatePersistence</provider> 
     <properties> 

      <!--PostgreSQL--> 
      <property name="hibernate.connection.driver_class" value="org.postgresql.Driver"/> 
      <property name="hibernate.connection.url" value="jdbc:postgresql://localhost:5432/postgres"/> 
      <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/> 
      <property name="hibernate.connection.username" value="postgres"/> 
      <property name="hibernate.connection.password" value="postgres"/> 
      <property name="hibernate.archive.autodetection" value="class"/> 
      <property name="hibernate.id.new_generator_mappings" value="true"/> 
      <property name="hibernate.hbm2ddl.auto" value="create-drop"/> 
      <property name="hibernate.ejb.metamodel.generation" value="disabled"/> 
      <property name="hibernate.ejb.naming_strategy" value="org.hibernate.cfg.DefaultComponentSafeNamingStrategy"/> 
      <property name="hibernate.show_sql" value="true"/> 
     </properties> 

    </persistence-unit> 

Любая идея, почему Hibernate не удалось найти файл persistence.xml ??

ответ

0

Когда проект мультимодуля maven, где у нас есть разные модули для REST, Service, DAL или n слоев, мы можем определить блок сохранения в другом модуле.

Здесь вы можете проверить здесь, в Example : Github project, где persistence.xml определяется в слое dal независимо от уровня REST.

Убедитесь, что путь к классам признает, добавив XML в

dal/src/main/resources/META-INF 

Как всегда, было бы иерархии зависимостей,

REST -> Service -> Dal 

 Смежные вопросы

  • Нет связанных вопросов^_^