【问题标题】:How to make spring load JPA classes from multiple paths?如何从多个路径弹簧加载 JPA 类?
【发布时间】:2009-04-03 11:42:48
【问题描述】:

所以我有一个 spring 应用程序分为几个模块,每个模块都在一个单独的项目中。 每个模块都有自己的 JPA 实体,我使用 Spring ORM 进行配置:

<beans ...>

<context:component-scan
    base-package="org.myapp.module1.persistence" />

<context:component-scan
    base-package="org.myapp.module2.persistence" />

...

<context:annotation-config />

<tx:annotation-driven />

...

</beans>

persistence.xml 文件如下所示:

<persistence ...>

<persistence-unit name="myunit" />

</persistence>

我的问题是,当 Spring 上下文初始化时,它只会在 persistence.xml 文件的同一路径上查找 @Entity 类,而忽略其他项目的类路径。

我尝试拥有多个persistence.xml,每个都与@Entity 类在同一路径中,但在这种情况下,一旦Spring 找到第一个persistence.xml,它就会停止加载并且不会在其他路径上找到任何@Entity 类.

如何让 Spring 查看所有内容?

【问题讨论】:

    标签: spring jpa


    【解决方案1】:

    如果您想从多个 persistence.xml 文件构建单个持久性单元,您可以使用 Spring Data JPA 中的 MergingPersistenceUnitManager。确保为所有持久性单元提供相同的名称。当然,persistence.xml 必须使用通配符导入:classpath*:META-INF/persistence.xml

    问候, 奥利

    【讨论】:

    【解决方案2】:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-03-12
      • 2016-06-02
      • 2018-05-06
      • 1970-01-01
      • 2018-11-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多