我的项目涉及JPA,并在我的persistence.xml
文件
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">
<persistence-unit name="rest-jpa">
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
<jta-data-source>java:/comp/env/jdbc/restDB</jta-data-source>
<class>org.wso2.as.ee.Student</class>
<properties>
<property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema(ForeignKeys=true)"/>
</properties>
</persistence-unit>
</persistence>
我的H2数据库是一个内存数据库。
当我在添加记录之前尝试查找记录时,它会给出找不到表的错误。我认为只有在向数据库添加记录时才会创建表。如何在添加任何记录之前创建表格?
答案 0 :(得分:1)
您可以使用以下JPA属性:
每次运行应用程序时生成并执行DROP TABLE
和CREATE TABLE
脚本:
javax.persistence.schema-generation.database.action=drop-and-create
创建数据库后加载一些预定义数据:
javax.persistence.sql-load-script-source="META-INF/loadData.ddl"
创建架构应该不延迟,直到使用实体(至少在使用JPA的情况下),因此您可以使用JPA属性来保证此行为。如果您仍然发现此行为,则应在JPA提供程序bugtracker上制作错误票据。