JPA persistence.xml没有删除所有模式表

时间:2015-01-31 12:21:32

标签: hibernate jpa wildfly

当我部署到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>        

1 个答案:

答案 0 :(得分:1)

drop-and-create只删除与当前实体相关的表,它不会清除整个模式。

因此,例如,如果重命名实体,则与旧实体名称对应的表将保留在数据库中。