У меня мультитенантное приложение.Это система управления школой.Приложение настроено для использования подхода Schema-Per-Tenant.Но это ограничено только одной схемой доступа на запрос.Я хочу использовать три разные схемы для каждого запроса.
Каждый пользователь имеет две схемы и общую схему приложения.Всего 3. Я хочу, чтобы мое приложение переключалось между всеми тремя схемами при одном вызове rest.Например, если запрос на добавление нового ученика, ученик должен быть добавлен в SCHEMA_A, автоматически созданная учетная запись пользователя для ученика должна быть добавлена в COMMON_SCHEMA, а studentId должен быть добавлен в класс в SCHEMA_B.В настоящее время я использую
entityManager.createNativeQuery("USE SCHEMA_A").executeUpdate();
add(student);
entityManager.createNativeQuery("USE COMMON_SCHEMA").executeUpdate();
add(generateUserForStudent(student));
entityManager.createNativeQuery("USE SCHEMA_B").executeUpdate();
addStudentToClass(student);
, это работает.
Но мне интересно, если это правильный подход.
Я также не уверен, еслиэто вызовет конфликты, когда в систему одновременно войдет несколько пользователей.
Может ли кто-нибудь мне помочь?