Кто-нибудь знает, поддерживает ли EclipseLink базу данных для каждого арендатора? - PullRequest
0 голосов
/ 27 июня 2019

В настоящее время мы используем EclipseLink в качестве реализации JPA для нового кода. Старый код выполнял мультитенантность с описанием решения следующим образом: каждый клиент (арендатор) должен иметь свою собственную базу данных - отдельные ресурсы JDBC. Информация о выбранном арендаторе передается через вызовы методов в ThreadLocal Переменная TENANT, объявленная в классе com.aaa.Instance.java. Ресурсы JDBC обрабатываются com.aaa.TenantDataSource. Во время инициализации TenantDataSource ищет зарегистрированные источники данных. в контексте java: comp / env / jdbc JNDI и проверяет, начинается ли их имя с «abc_». Ссылки на источники данных хранятся во внутренней карте с использованием кода клиента из JNDI. имя ресурса (источник данных с именем «abc_xx» зарегистрирован как источник данных для экземпляра «xx»). TenantDataSource проверяет значение переменной Instance.TENANT, когда 'getConnection' вызывается для использования соответствующего источника данных. TenantDataSource возвращается к источнику данных по умолчанию, если Instance.TENANT имеет значение NULL значение. Это может быть поведение по умолчанию для развертываний с одним владельцем. Теперь мы используем EclipseLink, я погуглил, чтобы посмотреть, смогу ли я реализовать мультитенант по мере необходимости. Похоже, EclipseLink может сделать: * Одностоловый мульти-аренда * таблица на одного арендатора * (VDP) мультитенантность

не похоже на Hibernate, который поддерживает базу данных для каждого арендатора. Может кто-нибудь сказать, правильно ли мое исследование? Спасибо

...