Avatar ·

hibernate.hbm2ddl.auto 可以取哪些值,它们的作用是什么?

大家好!我是一名 Java 新手开发者,在学习 Hibernate 的过程中遇到了配置参数 `hibernate.hbm2ddl.auto`。我知道它负责管理数据库 schema,但无法完全搞清楚它可以赋哪些值,以及每个值如何影响表。 以下是我的 `application.properties` 示例: ```properties spring.jpa.hibernate.ddl-auto=update ``` 目前我使用 `update`,它似乎可以工作:表会自动创建。但我看到不同项目中会写 `create`、`validate`、`none`。它们是什么意思? 我特别关心以下几点: 1. 如果设置 `create`,每次启动时是否会丢失所有数据? 2. `validate` 只是检查吗?如果表与实体不匹配会发生什么? 3. 如果在生产数据库中不小心留下 `create-drop` 会发生什么? 希望能得到详细的解释和示例。我想了解哪些值可以安全地用于生产环境,哪些只能用于开发环境。