Я использую последнюю версию Spring / JPA / Hibernate для доступа к моей базе данных MySQL.
Конфигурация выглядит следующим образом:
spring.jpa.hibernate.ddl-auto=create
spring.datasource.username=root
spring.datasource.password=
При обычной конфигурации (например, с одним арендатором) создаются отсутствующие таблицыавтоматически.Однако, когда я переключаюсь на мультитенанта:
@Bean
public LocalContainerEntityManagerFactoryBean
entityManagerFactory(DataSource dataSource,
MultiTenantConnectionProvider multiTenantConnectionProviderImpl,
CurrentTenantIdentifierResolver currentTenantIdentifierResolverImpl) {
Map<String, Object> properties = new HashMap<>();
properties.putAll(jpaProperties.getProperties());
properties.put(Environment.MULTI_TENANT, MultiTenancyStrategy.SCHEMA);
properties.put(Environment.MULTI_TENANT_CONNECTION_PROVIDER,
multiTenantConnectionProviderImpl);
properties.put(Environment.MULTI_TENANT_IDENTIFIER_RESOLVER,
currentTenantIdentifierResolverImpl);
LocalContainerEntityManagerFactoryBean em = new
LocalContainerEntityManagerFactoryBean();
em.setDataSource(dataSource);
em.setPackagesToScan("com.xxx");
em.setJpaVendorAdapter(jpaVendorAdapter());
em.setJpaPropertyMap(properties);
return em;
}
При попытке получить элементы я получаю следующую ошибку:
java.sql.SQLSyntaxErrorException: Table 'tenant_1.User' doesn't exist
По какой-то причине отсутствующая таблица «Пользователи» неавтоматически создается по существующей схеме "tenant_1".Поддерживается ли автоматическое создание таблиц в мультитенантной конфигурации?Или я что-то упустил?