Многопользовательская схема на основе схемы с гибернацией на MS SQL Server - PullRequest
0 голосов
/ 27 апреля 2018

Я реализую мультитенантное приложение на основе Java 8, Spring Boot 2 и JPA / Hibernate 5

Есть разные подходы к этому, я выбрал подход, основанный на схемах. Документы Hibernate также пишут о поддержке этого.

Я также посмотрел некоторые учебные пособия

Но похоже, что все в сети используют собственный SQL для переключения схемы. Я не только должен поддерживать несколько СУБД, но я мог бы предоставлять разные реализации, но кажется, что MS SQL Server не поддерживает установку схемы только на время соединения.

Существует метод setSchema(String) в объекте JDBC Connection, но MS не поддерживает его (также проверено, посмотрев их источник на Github). Не только это, но я также не могу найти способ использовать T-SQL.

Есть ли другой способ установить схему соединения в моем ConnectionProvider или мне нужно переключиться на совершенно другой подход (например, на основе столбца дискриминатора)?

К вашему сведению, схемы должны быть динамическими, поскольку арендаторы могут создаваться через пользовательский интерфейс.

1 Ответ

0 голосов
/ 09 июля 2018

ИМХО, лучшей мультитенантной стратегией для ваших требований к приложениям была бы стратегия COLUMN DISCRIMINATOR ... Но она все еще находится в стадии разработки и недоступна в последнем выпуске Hibernate 5.3.2.

К вашему сведению, схемы должны быть динамическими, поскольку арендаторы могут создаваться через пользовательский интерфейс.

Использование стратегии схемы с такими высокими требованиями к переносимости очень сложно реализовать по некоторым причинам:

  • Концепции схемы сильно различаются у разных поставщиков баз данных
  • Многопользовательское решение Hibernate все еще очень легкое

Я предлагаю снизить требования к переносным устройствам и выбирать только поставщиков баз данных, которые предоставляют вам инструменты для эффективной стратегии мультитенантной схемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...