Возможно ли иметь единый репозиторий как для реляционных, так и для нереляционных данных в данных весны? - PullRequest
4 голосов
/ 05 апреля 2020

Я хочу сделать мой микросервис совместимым как с реляционными, так и нереляционными базами данных,

В настоящее время у меня есть пять небольших модулей, которые составляют один микросервис:

  • Контроллер-модуль - Содержит все мои контроллеры и зависит от сервисного модуля
  • Сервисный модуль - содержит сервисы, которые связываются со слоем БД для получения данных или публикации данных и, очевидно, зависят от уровня данных (common-db -модули)
  • Common-db-modules- этот модуль определяет контракты (только интерфейсы) для слоев данных, которым необходимо следовать, чтобы быть совместимыми со службой

  • Данные -layer - этот модуль обеспечивает конкретную реализацию контрактов, определенных common-db-module. В зависимости от базы данных может быть несколько уровней данных. что означает один для Пн go ДБ, один для MySQL, и т. д. c

  • Упаковка: количество упаковочных модулей определяется на основе используемых дБ, упаковочных пакетов

    • контроллер-модуль
    • Сервисный модуль
    • Один уровень данных (БД, для которого сделана эта упаковка)

Мой вопрос: "Есть ли способ устранить этот общий контракт для БД и иметь единую реализацию уровня данных, которая будет обслуживать как реляционные, так и нереляционные БД?"

1 Ответ

0 голосов
/ 15 апреля 2020

вам не нужно создавать слой данных самостоятельно, Spring уже создает для вас объект доступа к данным (DAO). используйте репозиторий JPA, который способен извлекать данные как из sql, так и без sql.

. База данных

...