Могу ли я использовать существующую Hibernate SessionFactory для повторной инициализации схемы базы данных? - PullRequest
0 голосов
/ 14 июля 2011

Я хотел бы предоставить возможность полностью стереть базу данных моего веб-приложения из его графического интерфейса, воссоздавая таблицы с автоматически сгенерированным DDL, полученным из AnnotationConfiguration.

В данный момент я делаю это, программно устанавливая hibernate.hbm2ddl.auto в create, а затем создаю новый SessionFactory.

AnnotationConfiguration cfg = new AnnotationConfiguration();
if (nukeDB)
    cfg.setProperty("hibernate.hbm2ddl.auto", "create");
for (Class<?> clas : HibernateMappedClasses) {
    cfg.addAnnotatedClass(clas);
}
return cfg.buildSessionFactory();

, но для этого необходимо создать новый AnnotationConfiguration из того, который Spring создает для остальной части приложения.

Могу ли я использовать свой существующий SessionFactory для воссоздания схемы базы данных?

1 Ответ

0 голосов
/ 14 июля 2011

Это не просто в необработанном Hibernate, но, учитывая, что я использую Spring, оказывается, что LocalSessionFactoryBean имеет методы dropDatabaseSchema и createDatabaseSchema, которые вместе добиваются цели.

Без Spring я думаю, что скопировал бы код в эти методы!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...