Spring Boot+JPA+MySQL CRUD API重启数据丢失,求持久化解决方案
解决Spring Boot重启后数据丢失的问题
问题根源
你的配置文件中jpa.hibernate.ddl_auto: create是导致数据丢失的核心原因:
create模式下,每次应用启动时Hibernate都会删除现有数据库表,重新创建新表,直接清空之前存储的所有数据。
解决方案
修改application.yaml中的JPA DDL配置,替换为以下合适的选项:
推荐配置选项
update(开发阶段首选)- 启动时会根据实体类结构增量更新表结构:新增字段、调整字段类型等,但不会删除现有表或已存储的数据。
- 配置代码:
spring: jpa: hibernate: ddl-auto: update
validate(生产环境推荐)- 启动时仅验证实体类与数据库表结构是否匹配,不做任何修改;若结构不匹配则启动失败,最大程度保障数据安全。
none- 完全禁用Hibernate的自动DDL功能,适合完全手动管理数据库表结构的场景。
额外检查
- 你的
CloudVendor实体类注解(@Entity、@Id、@Table)配置正确,满足JPA持久化的基础要求。 - 数据源URL、用户名、密码配置无误,确保应用能稳定连接MySQL数据库。
验证修改
修改配置后重启应用,创建测试数据,再停止并重启应用,检查数据库中的数据是否保留。
内容的提问来源于stack exchange,提问作者Dadinho2000
相关产品推荐
相关产品推荐

