使用在不同模块

时间:2016-09-08 02:29:17

标签: hibernate jpa persistence.xml

我在我的应用程序中使用了不同的分离模块..

jpa-module:包含JPA实体和persistence.xml

rest-module:我正在使用JAX-RS服务和Hibernate来保存数据...

我正在使用Guice注入实体管理器,但是我收到了一个错误(如果我没有将persistence.xml放在rest-module下)

2016-09-07 22:09:06.704:WARN:oejw.WebAppContext:main: Failed startup of context o.e.j.w.WebAppContext@72c28d64{/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文件?

1 个答案:

答案 0 :(得分:0)

当maven多模块项目,我们有REST,Service,DAL或n层的不同模块时,我们可以在不同的模块中定义持久性单元。

您可以在Example : Github project中查看dal层中定义persistence.xml的位置,而不管REST层。

通过将xml添加到

来确保类路径可识别
dal/src/main/resources/META-INF

然而,会有依赖层次结构,

REST -> Service -> Dal