Я попытался сделать это максимально простым с помощью короткого примера.
У нас есть две базы данных: одна в MSSQLServer и другие в процессе. У нас есть пользовательский DTO, как следует, что мы показываем в таблице пользовательского интерфейса в веб-приложении.
User
int, id
String, name
String, accountNumber
String, street
String, city
String, country
Теперь этот DTO (Entity) не сохраняется только в одной базе данных, некоторая информация (поля) для одного и того же пользователя хранится в одной базе данных, а другая в другой базе данных.
MSsql
Table user
int, id
String, name
String, accountNumber
Table userModel
int, id
String, street
String, city
String, country
Как вы можете видеть, ключ является единственной частью, которая связывает две таблицы в обеих базах данных, как я уже сказал, прежде чем они не находятся в одной базе данных и не используют одного и того же поставщика базы данных.
У нас есть требование для сортировки таблицы UI для каждого столбца. Очевидно, нам нужно создать user dto с информацией, поступающей из обеих баз данных.
Наше предложение на данный момент заключается в том, что если пользователь хочет применить сортировку с использованием поля улицы, мы запускаем запрос в базе данных Progress и получаем страницу (используя разбивку на страницы) с использованием этого набора результатов и переходим непосредственно в таблицу пользователей MSSQLServer с этими ключами и запустите другой запрос, чтобы извлечь недостающую информацию и сохранить ее в нашем DTO и перенести ее в пользовательский интерфейс. С помощью подразумевает запуск запроса в одной базе данных, затем другой запрос на основе возвращаемых ключей во второй базе данных.
Порядок базы данных может измениться в зависимости от того, в каком столбце (поле) пользователь хочет применить сортировку.
Технически мы создадим jparepository, который действует как фасад и в зависимости от поля сделает процесс в правильной базе данных.
Мой вопрос: Существует какой-то шаблон, который обычно используется в этих сценариях, мы используем spring, поэтому, возможно, spring имеет некоторые из функций, поддерживающих это требование, будет отлично, если это возможно с помощью jparepositories (у меня есть несколько сомнений в этом, так как мы будем использовать два разных сущности-менеджеров, по одному для каждой базы данных).
Примечание. Перенос данных из одной базы данных в другую не является параметром.