Prz*_*iec 5 java spring hibernate jpa spring-boot
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)
您可以使用spring.jpa.*属性显式配置 JPA 设置。例如,要创建和删除表,您可以将以下行添加到 application.properties 中:
spring.jpa.hibernate.ddl-auto=create-drop\nRun Code Online (Sandbox Code Playgroud)\nHibernate\xe2\x80\x99s 自己的内部属性名称(如果你记得更好的话)是hibernate.hbm2ddl.auto。
spring.jpa.hibernate.ddl-auto这实际上是属性的捷径"hibernate.hbm2ddl.auto"。
默认为"create-drop"使用嵌入式数据库且未检测到模式管理器时。否则,默认为"none".
Spring Boot 可以自动创建 DataSource 的架构(DDL 脚本)并初始化它(DML 脚本)。
\n它分别从标准根类路径位置加载 SQL:schema.sql和data.sql。
此外,Spring Boot 还会处理schema-${platform}.sql和data-${platform}.sql文件(如果存在),其中 platform 是spring.datasource.platform.
这允许您在必要时切换到特定于数据库的脚本。例如,您可以选择将其设置为数据库的供应商名称(hsqldb、h2、oracle、mysql、postgresql 等)。
\n| 归档时间: |
|
| 查看次数: |
821 次 |
| 最近记录: |