Изменить tenantIdentifier на уровне контроллераJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Изменить tenantIdentifier на уровне контроллера

Сообщение Anonymous »

Мы реализуем мультиарендность в нашем продукте и используем шаблон проектирования «база данных на каждого арендатора». Мы следовали шаблону «тенант на запрос», предложенному здесь. Spring Multitenant и рабочий пример.
Вышеупомянутый подход работает хорошо, если мы уже знаем, в какой базе данных/схеме мы хотим выполнять поиск.
Мы есть вариант использования, когда нам нужно искать в схеме по умолчанию, а если не найдено, то в другой схеме. Но как только запрос достигает уровня контроллера, мы не можем переключить контекст, и он сохраняет только схему по умолчанию. Я попробовал использовать код ниже -

Код: Выделить всё

public class PersonController {

@Qualifier("otherSchemaDataSource")
private final DataSource otherSchemaDataSource;

public PersonDto getPerson(@PathVariable String personId) {
try {
return personService.getById(personId); //search with default schema
} catch (Exception e) {
// search in other schema if not found in default schema
TenantContext.setTenantInfo("other_schema");
Object oo = "other_schema";
sessionFactory.withStatelessOptions().tenantIdentifier(oo);
tenantIdentifierResolver.resolveCurrentTenantIdentifier();
multiTenantConnectionConfig.setDataSource(otherSchemaDataSource);
multiTenantConnectionConfig.getConnection("other_schema");
multiTenantConnectionConfig.setDataSource(ecmArchiveDataSourc);
return personService.getById(personId);
}

}
}

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

Подробнее здесь: https://stackoverflow.com/questions/793 ... ller-level
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»