是否可以在我的数据库中加载初始数据?
我正在使用 JPA 并使用 Drop and Create 策略,这样每次我想测试我的应用程序时,数据库都会先被清除,我将不得不重新创建所有内容。
我知道在其他语言中(Php -> Doctrine datafixtures,C# -> Context)可以在类持久化后加载初始数据。
但是我尝试在 Java 中搜索此类功能,但找不到执行此操作的好方法。我在 stackoverflow 上发现了几个关于此的主题,但似乎没有一个有很好的答案。我正在使用 java 桌面应用程序(不是 spring)
最佳答案
这是完全可能的。您的 JPA 实现应该有一些机制来为删除和/或创建阶段注册脚本。以下是一些示例:
- EclipseLink:参见 eclipselink.create-dll-jdbc-file-name http://wiki.eclipse.org/EclipseLink/Examples/JPA/DDL
- Hibernate:更简单,只需将名为 import.sql 的文件放在类路径中并选择正确的策略(例如 create-drop)( http://christopherlakey.com/articles/import-sql.html )
持久性:来源:http://docs.oracle.com/javaee/7/tutorial/persistence-intro005.htm
<property name="javax.persistence.sql-load-script-source" value="META-INF/createDDL_ddlGeneration.sql" />
如果您只需要它进行测试,您也可以在设置方法中预填充数据库。但显然这不再是 JPA 机制。
关于java - 插入初始数据 JPA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22269307/