当我们在使用Spring Data JPA时,通常会在配置文件 application.properties中指定数据库的初始化模式。此时需要用到 spring.jpa.hibernate.ddl-auto属性,下面对该属性进行详细解释。

该属性的属性值及其说明

属性值 说明
none 不指定数据库初始化模式
create 当Spring Boot应用运行时,会删除并重新创建数据库。所以每次启动时,所有的数据都会被清空
create-drop 当sessionFactory关闭,表会自动删除
validate 在Spring Boot应用运行时,会检查数据库中的表与java实体类是否匹配。如果不匹配,则运行失败
update 当在java实体类中新增了一个字段,在应用重新运行时,会将字段添加到数据库表中的新列,但不会移除先前存在的列或约束

该属性的默认值

当数据库是嵌入式数据库时,Spring Boot会指定该属性默认值为create-drop;当不是嵌入式数据库时,Spring Boot指定该属性的默认值为none

应用场景

在开发阶段中,通常使用update,但需要注意,update不会移除先前已经存在的列和约束,即使是不再需要的。
当产品发布的时候,建议使用none或直接不指定该属性。

参考链接

How does spring.jpa.hibernate.ddl-auto property exactly work in Spring?
Spring Boot Database Initialization

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐