当我部署到Wildfly时,我希望我的所有数据库表都会被删除并再次创建。但是我的数据库中仍然存在一些旧表(旧的Java实体)。
这是我的persistence.xml
文件:
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"
version="2.1">
<persistence-unit name="gestalPU">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:jboss/datasources/MySQLDS</jta-data-source>
<properties>
<property name="javax.persistence.schema-generation.database.action"
value="drop-and-create" />
<property name="javax.persistence.schema-generation.create-source"
value="metadata" />
<property name="javax.persistence.schema-generation.drop-source"
value="metadata" />
<property name="javax.persistence.sql-load-script-source"
value="insert.sql" />
<property name="javax.persistence.schema-generation.create-database-schemas" value="true"/>
</properties>
</persistence-unit>
</persistence>
答案 0 :(得分:1)
drop-and-create
只删除与当前实体相关的表,它不会清除整个模式。
因此,例如,如果重命名实体,则与旧实体名称对应的表将保留在数据库中。