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` 会发生什么?
希望能得到详细的解释和示例。我想了解哪些值可以安全地用于生产环境,哪些只能用于开发环境。