我想提供从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
重新创建数据库架构吗?
答案 0 :(得分:0)
在原始Hibernate中这并不简单,但考虑到我使用的是Spring,结果发现LocalSessionFactoryBean
有方法dropDatabaseSchema
和createDatabaseSchema
一起完成。
没有Spring我想我会用这些方法复制代码!