当我使用Spring Boot 1.5时,在应用程序启动时,Hibernate 在设置了适当的配置时执行了位于/ resources文件夹中的schema.sql文件.在Spring Boot 2.0发布之后,此功能不再起作用.我在文档中找不到任何有关此更改的内容.这是我的application.properties文件内容:
spring.datasource.url=...
spring.datasource.username=...
spring.datasource.password=...
#spring.jpa.hibernate.ddl-auto=create-drop
spring.jpa.hibernate.ddl-auto=none
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
Run Code Online (Sandbox Code Playgroud)
Spring Boot 2.0是否有一些变化,或者这是一个错误/问题?
spring.jpa.hibernate.hbm2ddl和 和有spring.jpa.hibernate.ddl什么区别?
我在这个问题中发现:spring.datasource.initialization-mode 的可能值是什么?OP 在属性中同时使用这两者,但是它的来源似乎hbm2ddl是直接休眠而不是 Spring Data Jpa。
尽管如此,从另一个 OP阅读 答案,它看起来只是通过。
但是在我们使用 mariadb 的商业项目中,当我们没有优雅地关闭我们的 spring boot 应用程序时spring.jpa.hibernate.hbm2ddl.auto=create,当应用程序再次运行时,它会删除旧数据并从头开始创建所有内容。另一方面,spring.jpa.hibernate.ddl.auto=create每秒运行一次(在没有正常关闭应用程序之后)会导致关键约束异常(DB 在创建之前不是 dropper)