如何让Hibernate在运行时删除并重新创建数据库,而不是在编译时?

时间:2014-04-01 21:07:23

标签: java spring hibernate

我有一个网络服务器,正在使用hibernate和spring进行原型设计。我有一个Insert方法,插入一堆测试数据。当用户请求我网站上的某个页面时,此脚本将启动。我希望在用户进入此页面时删除并重新创建数据库。

有没有像我建议的那样在运行时这样做?我可以停止并启动我的服务器,但这需要一段时间。

更新 - 我就是这样做的:

    Configuration configuration = new Configuration().configure();
    ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();
    SchemaExport schemaExport = new SchemaExport(serviceRegistry, configuration);
    schemaExport.create(Target.BOTH);

1 个答案:

答案 0 :(得分:3)

您可以直接使用SchemaExport hibernate类,查看javadoc

当你设置参数hibernate.hbm2ddl.auto=create-drop时,这是由hibernate内部调用的同一个类。可以使用dropSchema()createSchema()触发删除和创建架构。