假设我在一个数据库中有两个模式。每个架构都有一个名为' products'它具有几乎相同的列,例如标题' sku'。
我有一个如下的实体类,它被映射到products表:
@Entity
public class Products {
private String title;
private String sku;
}
现在我想选择' title'和' sku'来自两个产品'在这两个不同的模式中的表,我如何在Spring Data中执行它或Spring Data是否支持这种功能?
答案 0 :(得分:0)
不,不是。为了能够使用spring-data-jpa
查询来自不同数据源的数据,您必须定义两个单独的实体管理器工厂,两个单独的事务管理器和两个不同的配置
@EnableJpaRepositories(entityManagerFactoryRef = "emf1", transactionManagerRef = "tx1")
和
@EnableJpaRepositories(entityManagerFactoryRef = "emf2", transactionManagerRef = "tx2")
分别。 然后,您将能够创建两个不同的存储库并查询您的数据。
要解决您的问题,您可以引入额外的抽象级别,例如ProductService
,您将注入您的存储库,并在加载方法中迭代它们,从每个存储库中获取和组合数据。