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

Hibernate自动生成Schema时如何覆盖而非追加SQL Schema定义?

Spring Boot JPA 生成SQL文件覆盖原有内容的配置方案

JPA规范默认的Schema生成脚本写入策略为追加模式,因此每次项目启动生成的SQL都会拼接在原有文件末尾,你只需新增一行配置即可切换为覆盖模式:

修改后的完整配置如下:

spring:
  profiles: devlocal
  jpa:
    hibernate.ddl-auto: "create-drop"
    hibernate.hbm2ddl.charset_name: "UTF-8"
    properties:
      javax:
        persistence:
          schema-generation:
            scripts:
              action:  "drop-and-create"
              create-target: "src/main/resources/data/definition/create.sql"
              drop-target: "src/main/resources/data/definition/drop.sql"
              create-source: "metadata"
              drop-source: "metadata"
              # 新增以下配置,关闭追加模式,每次生成直接覆盖原文件
              append-target: false
    open-in-view: true

注意事项

  • 若你使用Spring Boot 3及以上版本,由于Java EE已迁移为Jakarta EE,需要把配置前缀javax.persistence替换为jakarta.persistence,其余配置逻辑不变
  • 该配置属于JPA 2.1规范的标准参数,所有兼容JPA 2.1的持久化实现(包括Hibernate)均支持该配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 23:00:02