对于最新的稳定版本,请使用 Spring Data JPA 3.3.1Spring中文文档

对于最新的稳定版本,请使用 Spring Data JPA 3.3.1Spring中文文档

Spring 支持具有多个持久性单元。但是,有时您可能希望将应用程序模块化,但仍要确保所有这些模块在单个持久性单元内运行。为了启用该行为,Spring Data JPA 提供了一个实现,该实现根据其名称自动合并持久性单元,如以下示例所示:PersistenceUnitManagerSpring中文文档

例 1.使用 MergingPersistenceUnitmanager
<bean class="….LocalContainerEntityManagerFactoryBean">
  <property name="persistenceUnitManager">
    <bean class="….MergingPersistenceUnitManager" />
  </property>
</bean>

@Entity类和 JPA 映射文件的类路径扫描

普通的 JPA 设置要求所有注释映射的实体类都列在 中。这同样适用于 XML 映射文件。Spring Data JPA 提供了一个配置基本包,并可选择采用映射文件名模式。然后,它会扫描给定的包中带有 or 注释的类,加载与文件名模式匹配的配置文件,并将它们交给 JPA 配置。后处理器必须按如下方式配置:orm.xmlClasspathScanningPersistenceUnitPostProcessor@Entity@MappedSuperclassSpring中文文档

例 2.使用 ClasspathScanningPersistenceUnitPostProcessor
<bean class="….LocalContainerEntityManagerFactoryBean">
  <property name="persistenceUnitPostProcessors">
    <list>
      <bean class="org.springframework.data.jpa.support.ClasspathScanningPersistenceUnitPostProcessor">
        <constructor-arg value="com.acme.domain" />
        <property name="mappingFileNamePattern" value="**/*Mapping.xml" />
      </bean>
    </list>
  </property>
</bean>
从 Spring 3.1 开始,可以直接配置要扫描的包,以启用实体类的类路径扫描。有关详细信息,请参见 JavaDocLocalContainerEntityManagerFactoryBean
从 Spring 3.1 开始,可以直接配置要扫描的包,以启用实体类的类路径扫描。有关详细信息,请参见 JavaDocLocalContainerEntityManagerFactoryBean