Spring 数据 JPA:如何为包含相同实体的多个数据源组织存储库和服务层

Spring data JPA : How to organize repositories and service layer for multiple datasources containing same entity

我有一个实体 EntityA 存在于多个数据源中,datasourceAdatasourceB .基本上,相同 table 但两个数据库中存在不同的内容。

在这种情况下,我应该如何组织我的 spring 启动应用程序?目前我有以下内容:

这个问题是,在我的真实程序中,我有 6 个实体,它们全部由 6 个数据源共享,这导致我有 32 个存储库,每个实体和每个数据源一个。此外,我用于选择要在服务中使用的正确存储库的代码 class 变得很长。

这是解决问题的最佳方法还是有更好的组织方式/限制所需存储库的数量? Spring 引导在我的应用程序中使用休眠。

如果这些重复的实体将始终针对每个数据源同时更新,那么您可以在系统范围内只维护一个实体。否则,您需要为每个数据源创建唯一的实体。您已经声明您为存储库管理配置了数据源。您还可以通过继承集中存储库的使用。喜欢;

public interface BaseLoadRepository extends CrudRepository<LoadEntity, Long>

public interface DataSource1LoadRepo extends BaseLoadRepository

public interface DataSource2LoadRepo extends BaseLoadRepository

它让您有机会为每个数据源独立添加新方法。这种方法也可以用于实体。