我可以使用现有的Hibernate SessionFactory来重新初始化我的数据库模式吗?

时间:2011-07-13 22:22:25

标签: java hibernate spring

我想提供从GUI完全擦除我的webapp数据库的功能,使用从AnnotationConfiguration收集的自动生成的DDL重建表。

目前我通过以编程方式将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();

但这需要从Spring为应用程序的其余部分构建一个新的AnnotationConfiguration

我可以使用现有的SessionFactory重新创建数据库架构吗?

1 个答案:

答案 0 :(得分:0)

在原始Hibernate中这并不简单,但考虑到我使用的是Spring,结果发现LocalSessionFactoryBean有方法dropDatabaseSchemacreateDatabaseSchema一起完成。

没有Spring我想我会用这些方法复制代码!