Spring数据中的关系数据库和非关系数据库是否可以具有单个存储库?

时间:2020-04-05 03:41:51

标签: spring-data-jpa spring-data microservices

我想使我的微服务与关系数据库和非关系数据库兼容,

目前,我有五个小的模块可以组成一个微服务:

  • 控制器模块-包含我所有的控制器,并且对服务模块有依赖性

  • 服务模块-包含与DB层进行通信以获取数据或发布数据的服务,并且显然依赖于数据层(common-db-modules)

  • Common-db-modules-此模块为数据层定义了合同(仅接口),以便与服务兼容

  • 数据层-此模块提供了common-db-module定义的合同的具体实现。取决于数据库,可能会有多个数据层。这意味着一个用于Mongo DB,一个用于MySQL,等等

  • 包装:包装模块的数量是根据使用的db定义的,包装包装

    • 控制器模块
    • 服务模块
    • 一个数据层(为此打包的数据库)

我的问题:有没有一种方法可以消除DB的这种通用契约,并且有一个数据层的单一实现,它将同时服务于关系型和非关系型DB?

1 个答案:

答案 0 :(得分:0)

您不必自己构建数据层,Spring已经为您创建了数据访问对象(DAO)。使用能够从sql和nosql提取数据的JPA存储库。

请参考https://docs.spring.io/spring-data/jpa/docs/2.2.6.RELEASE/reference/html/#repositories

,您还需要配置..数据库