Spring 数据 JPA:如何为包含相同实体的多个数据源组织存储库和服务层
Spring data JPA : How to organize repositories and service layer for multiple datasources containing same entity
我有一个实体 EntityA 存在于多个数据源中,datasourceA 和 datasourceB .基本上,相同 table 但两个数据库中存在不同的内容。
在这种情况下,我应该如何组织我的 spring 启动应用程序?目前我有以下内容:
- 1 个实体 class
- 2 个存储库,每个数据源一个。我有一个配置文件,指示存储库应使用的数据源。
- 1 项服务 class,它根据给定的参数查询其中一个存储库。
这个问题是,在我的真实程序中,我有 6 个实体,它们全部由 6 个数据源共享,这导致我有 32 个存储库,每个实体和每个数据源一个。此外,我用于选择要在服务中使用的正确存储库的代码 class 变得很长。
这是解决问题的最佳方法还是有更好的组织方式/限制所需存储库的数量? Spring 引导在我的应用程序中使用休眠。
如果这些重复的实体将始终针对每个数据源同时更新,那么您可以在系统范围内只维护一个实体。否则,您需要为每个数据源创建唯一的实体。您已经声明您为存储库管理配置了数据源。您还可以通过继承集中存储库的使用。喜欢;
public interface BaseLoadRepository extends CrudRepository<LoadEntity, Long>
public interface DataSource1LoadRepo extends BaseLoadRepository
public interface DataSource2LoadRepo extends BaseLoadRepository
它让您有机会为每个数据源独立添加新方法。这种方法也可以用于实体。
我有一个实体 EntityA 存在于多个数据源中,datasourceA 和 datasourceB .基本上,相同 table 但两个数据库中存在不同的内容。
在这种情况下,我应该如何组织我的 spring 启动应用程序?目前我有以下内容:
- 1 个实体 class
- 2 个存储库,每个数据源一个。我有一个配置文件,指示存储库应使用的数据源。
- 1 项服务 class,它根据给定的参数查询其中一个存储库。
这个问题是,在我的真实程序中,我有 6 个实体,它们全部由 6 个数据源共享,这导致我有 32 个存储库,每个实体和每个数据源一个。此外,我用于选择要在服务中使用的正确存储库的代码 class 变得很长。
这是解决问题的最佳方法还是有更好的组织方式/限制所需存储库的数量? Spring 引导在我的应用程序中使用休眠。
如果这些重复的实体将始终针对每个数据源同时更新,那么您可以在系统范围内只维护一个实体。否则,您需要为每个数据源创建唯一的实体。您已经声明您为存储库管理配置了数据源。您还可以通过继承集中存储库的使用。喜欢;
public interface BaseLoadRepository extends CrudRepository<LoadEntity, Long>
public interface DataSource1LoadRepo extends BaseLoadRepository
public interface DataSource2LoadRepo extends BaseLoadRepository
它让您有机会为每个数据源独立添加新方法。这种方法也可以用于实体。