2012-09-27 117 views
0

我正在使用hbm2ddl来创建我的表,它的工作原理很好,但我也希望hibernate每次运行我的项目时都要加载一个.sql文件来填充数据库。 我发现Hibernate应该这样做,如果我的.sql文件在类路径中,但它似乎不工作。如何在运行Maven/Hibernate项目时加载.sql文件?

我不知道该文件是否在类路径中,我不知道如何发现。 目前我的load.sql是在其他来源/ csr /主要/资源/

我GOOGLE和读,我可以添加一个文件到我的项目的属性/库菜单中的类路径,但它似乎Maven项目doesn没有那个部分。

我正在使用Mysql与JDBC和Netbeans 7.1.2。

+1

描述我没有一个答案,但我很好奇,为什么你会希望每次运行应用程序时间来重建您的数据库。 – amphibient

+0

听起来更像在这种情况下测试,但我不知道... – khmarbaise

+0

@foampile示例:我们有一个开发配置这样做(因为开发人员倾向于腐败数据hehe)。当然,实时系统的配置不​​会重建数据库。 – dube

回答

1

您可以使用sql-maven-plugin来做这样的事情。这可以运行sql脚本等.hbm2ddl创建可以由sql-maven-plugin执行的SQL脚本。

3

您必须指定要在hibernate.xml

<hibernate-configuration> 
    <session-factory> 
     ... some other stuff comes here  
     <property name="hibernate.hbm2ddl.auto">create-drop</property> 
     <property name="hibernate.hbm2ddl.import_files"> 
      /import1.sql, /import2.sql 
     </property> 
    </session-factory> 
<hibernate-configuration> 

加载脚本只加载如果hbm2ddl.auto =创造降的SQL文件。导入文件在所有其他选项上被忽略 请注意,此文件中只允许使用单行语句。

这两个属性在Hibernate Configuration, Chapter 3.4

+0

非常感谢,这个作品完美! –

+0

如果'hbm2ddl.auto = create',脚本也被加载 –

相关问题