You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用JPA方式生成DDL失效:仅生成SQL文件但数据库无表

Hibernate 6.1.6.FINAL下JPA方式生成DDL仅生成文件但数据库无表的问题

当前使用Hibernate 6.1.6.FINAL版本,通过原生Hibernate方式(配置hibernate.hbm2ddl.auto)可依据映射注解正常生成数据库DDL,配置如下:

<persistence-unit name="com.whatever.persistence.jpa">
    <description>
        A template for building a persistence layer/module.
    </description>
    <properties>
        <property name="jakarta.persistence.jdbc.driver" value="org.h2.Driver" />
        <property name="jakarta.persistence.jdbc.url" value="jdbc:h2:mem:db1;DB_CLOSE_DELAY=-1" />
        <property name="jakarta.persistence.jdbc.user" value="sa" />
        <property name="jakarta.persistence.jdbc.password" value="" />

        <property name="hibernate.show_sql" value="true" />
        <property name="hibernate.hbm2ddl.auto" value="create" />
    </properties>

</persistence-unit>

但采用JPA方式生成DDL时,虽成功创建tables.sql文件,数据库中却未生成对应表,相关配置如下:

<persistence-unit name="com.whatever.persistence.jpa">
    <description>
        A template for building a persistence layer/module.
    </description>
    <properties>
        <property name="jakarta.persistence.jdbc.driver" value="org.h2.Driver" />
        <property name="jakarta.persistence.jdbc.url" value="jdbc:h2:mem:db1;DB_CLOSE_DELAY=-1" />
        <property name="jakarta.persistence.jdbc.user" value="sa" />
        <property name="jakarta.persistence.jdbc.password" value="" />

        <property name="hibernate.show_sql" value="true" />

        <property name="jakarta.persistence.schema-generation.scripts.action" value="create"/>
        <property name="jakarta.persistence.schema-generation.create-source" value="metadata"/>
        <property name="jakarta.persistence.schema-generation.scripts.create-target" value="tables.sql"/>
    </properties>

</persistence-unit>

内容的提问来源于stack exchange,提问作者kladderradatsch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 06:15:46