Spring Data支持同时查询多个模式的数据吗?

问题描述:

假设我在一个数据库中有两个模式。每个模式都有一个名为'products'的表,它具有几乎相同的列,如'title','sku'。Spring Data支持同时查询多个模式的数据吗?

我有一个实体类,如下所示,它映射到产品表:

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

现在我想在这两个选择,从两个“产品”表“称号”和“SKU”不同的模式,我如何在Spring Data中做到这一点,或者Spring Data支持这种功能?

不,它不是。为了能够从不同的数据源与spring-data-jpa你必须定义两个单独的实体管理器工厂,两个独立的事务管理器和两个不同的配置,在

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

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

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

要解决您的问题,您可以引入一个额外的抽象层次,如ProductService,您将在其中注入存储库,并在加载方法中遍历它们,从每个存储库获取并合并数据。