如何为存储库设置特定的DataSource?

mem*_*und 7 java spring spring-data-jpa

是否可以指定特定DataSource@Repository

我想创建一个测试环境,通常我想使用test-datasource,但有些CrudRepository应该在不同的DB(生产数据库;只读操作)上运行.

我可以告诉spring哪个数据源用于存储库显式?

public interface MyRepository extends CrudRepository<Customer, Long> {}

man*_*ish 6

DataSourceJpaRepository都绑定到EntityManager。您必须将存储库隔离到单独的包中才能满足您的要求。

下面是一个例子:

<bean id="emf1" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
  <property name="dataSource">
    <bean .../>
  </property>
  ...
</bean>
<jpa:repositories base-package="org.example.package1" entity-manager-factory-ref="emf1"/>

<bean id="emf2" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
  <property name="dataSource">
    <bean .../>
  </property>
  ...
</bean>
<jpa:repositories base-package="org.example.package2" entity-manager-factory-ref="emf2"/>
Run Code Online (Sandbox Code Playgroud)


Far*_*ook -1

@EnableJpaRepositories是你问题的答案。CrudRepository这应该根据非正式文件进行操作。

请参阅此详细教程以了解如何执行此操作。我没有花精力在这里发布代码,因为您可以直接在其中更清楚地引用它。

教程链接...