Java 插入初始数据JPA

Java 插入初始数据JPA,java,jpa,Java,Jpa,是否可以在我的数据库中加载初始数据 我使用的是JPA,使用的是Drop-and-Create策略,这样每次我想测试我的应用程序时,首先清除数据库,然后我必须重新创建所有内容 我知道在其他语言(Php->Doctrine datafixtures,C#->Context)中,可以在类的持久化之后加载初始数据 然而,我尝试在java中搜索这样的特性,但我找不到一个好方法来实现这一点。我在stackoverflow上找到了几个关于这个的话题,但似乎没有一个好的答案。我使用的是java桌面应用程序(不是

是否可以在我的数据库中加载初始数据

我使用的是JPA,使用的是Drop-and-Create策略,这样每次我想测试我的应用程序时,首先清除数据库,然后我必须重新创建所有内容

我知道在其他语言(Php->Doctrine datafixtures,C#->Context)中,可以在类的持久化之后加载初始数据


然而,我尝试在java中搜索这样的特性,但我找不到一个好方法来实现这一点。我在stackoverflow上找到了几个关于这个的话题,但似乎没有一个好的答案。我使用的是java桌面应用程序(不是spring)

这是完全可能的。您的JPA实现应该有一些机制来为drop和/或create阶段注册脚本。以下是一些例子:

  • EclipseLink:参见EclipseLink.create-dll-jdbc-file-name
  • Hibernate:更简单的是,只需在类路径上放置一个名为import.sql的文件,然后选择正确的策略(例如createdrop)()
  • 持久性:来源:

    
    

如果您只在测试时需要它,还可以在安装方法中预先填充数据库。但显然,这不再是JPA机制。

您想加载数据以便测试应用程序,还是应用程序使用这些数据?对于Hibernate,我建议使用属性“Hibernate.hbm2ddl.import_files”的另一种方法,该属性允许指定多个SQL脚本文件,请参阅(法语)
<property name="javax.persistence.sql-load-script-source" value="META-INF/createDDL_ddlGeneration.sql" />