Spring Data是否支持同时从多个模式查询数据?

时间:2017-07-08 10:01:12

标签: spring-data-jpa

假设我在一个数据库中有两个模式。每个架构都有一个名为' products'它具有几乎相同的列,例如标题' sku'。

我有一个如下的实体类,它被映射到products表:

@Entity
public class Products {
  private String title;
  private String sku;
}

现在我想选择' title'和' sku'来自两个产品'在这两个不同的模式中的表,我如何在Spring Data中执行它或Spring Data是否支持这种功能?

1 个答案:

答案 0 :(得分:0)

不,不是。为了能够使用spring-data-jpa查询来自不同数据源的数据,您必须定义两个单独的实体管理器工厂,两个单独的事务管理器和两个不同的配置

@EnableJpaRepositories(entityManagerFactoryRef = "emf1", transactionManagerRef = "tx1")

@EnableJpaRepositories(entityManagerFactoryRef = "emf2", transactionManagerRef = "tx2")

分别。 然后,您将能够创建两个不同的存储库并查询您的数据。

要解决您的问题,您可以引入额外的抽象级别,例如ProductService,您将注入您的存储库,并在加载方法中迭代它们,从每个存储库中获取和组合数据。