Я работаю со Spring boot и JPA/Hibernate. У меня есть 2 типа таблиц:
Так как модель может хранить миллионы записей, характеризующие ее, и самих моделей может быть тысячи, то было принято решение, что для каждой модели необходимо создавать свою персональную таблицу.
Вопрос. Как в Spring можно динамически создавать таблицы, давать им имена по некому алгоритму и помещать в application context?
Уже достаточно долго бьюсь с этой задачей и не могу найти нормального решения.
Рассматриваю варианты реализации через @Query отправку прямого запроса на создание таблицы, но как ее инициализировать потом в application context?
Также копаю в сторону Entitymanagerfactory, но пока не могу найти нормального решения.
Буду очень благодарен за подсказку.
Задача решена через реализацию DDL-script'а schema.sql и объявления соответствующего бина в applicationContext
public DataSource createTable() {
ApplicationContext applicationContext = ApplicationContextProvider.getApplicationContext();
DataSource dataSource = (DataSource) applicationContext.getBean("dataSource");
ResourceDatabasePopulator databasePopulator = new ResourceDatabasePopulator();
databasePopulator.setContinueOnError(true);
databasePopulator.addScript(new ClassPathResource("schema.sql"));
DatabasePopulatorUtils.execute(databasePopulator,dataSource);
return dataSource;
}
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости