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
,您将在其中注入存储库,并在加载方法中遍历它们,从每个存储库获取并合并数据。