从 Spring Boot 2.6.1 升级到 2.6.2 后,“spring.jpa.hibernate.ddl-auto=create-drop”不再“删除架构”

Fra*_*tus 5 hibernate spring-boot

我正在使用 Maven、Spring Boot、Hibernate 和 PostgreSQL 11。我的 application.properties 文件包括spring.jpa.hibernate.ddl-auto=create-dropspring.jpa.properties.hibernate.hbm2dll.create_namespaces=truespring.jpa.properties.hibernate.default_schema="my_schema"


Spring Boot 2.6.1依赖于Hibernate 5.6.1.Final。使用此版本,Hibernate 在启动时执行的操作如下:

  1. 删除表(如果存在)(它们不存在)
  2. 删除 my_schema (不存在)
  3. 创建我的模式
  4. 创建表
  5. 更改表以添加约束

...然后关闭时:

  1. 删除表(如果存在)(它们现在确实存在)
  2. 删除 my_schema (现在确实存在)

Spring Boot 2.6.2依赖于Hibernate 5.6.3.Final。使用此版本,Hibernate 在启动时执行的操作如下:

  1. 删除表(如果存在)(它们不存在)
  2. 创建我的模式
  3. 创建表
  4. 更改表以添加约束

...然后关闭时:

  1. 删除表(如果存在)(它们现在确实存在)

(Spring Boot 2.6.2 到 2.6.5 版本似乎在这方面都有相同的行为。)

问题:

  1. 是否有任何文档解释此更改(我认为发生在 Hibernate 5.6.2 或 Hibernate 5.6.3 中)?

  2. 当我使用时,如何恢复关闭时的“删除架构”步骤spring.jpa.hibernate.ddl-auto=create-drop?(但是当然,当我使用没有设置的Spring 配置文件时create-drop,我不希望发生“删除架构”。)