【问题标题】:Spring boot tables in database not updated when entity field is modified修改实体字段时,数据库中的 Spring Boot 表未更新
【发布时间】:2020-04-30 13:55:21
【问题描述】:

在使用 Spring boot 创建 API 时,我创建了一个实体 User,其中包含一些字段,例如 firstname、lastname、...

我第一次启动应用程序时,在数据库中创建了包含所有字段的表。
然后我更新一个添加@Column(nullable = false) 的字段。
然后,当我再次运行应用程序时,该字段不会使用我添加的新属性进行更新。

在我的application.properties 中,我使用这个参数:spring.jpa.hibernate.ddl-auto=update 但它没有更新任何我不知道为什么的东西

【问题讨论】:

  • 您找到解决方案了吗?
  • 不,我找到的唯一解决方案是删除数据库,然后它会正确重新生成表。
  • 是的,我也这样做了。

标签: mysql spring-boot spring-data-jpa


【解决方案1】:

确保列不能有 NULL 值。如果该列具有空值,则 SQL 查询未执行。您可以先删除该列,然后再创建它。

【讨论】:

  • 我不确定我是否清楚地理解了您的回答!你的意思是如果我的数据库中的一个条目是空的,它不会改变列属性,否则我没有理解你的问题对不起。但是,如果是这种情况,它也不起作用,因为我在此列中没有具有 NULL 值的行
  • 是的,检查是否有任何行具有该列的空值
  • 我检查了,但是该列没有空值的行,它们都有一个不同于 null 或不同于空的值
猜你喜欢
  • 1970-01-01
  • 2013-08-22
  • 2020-04-11
  • 1970-01-01
  • 2018-08-14
  • 2021-12-30
  • 1970-01-01
  • 1970-01-01
  • 2020-07-27
相关资源
最近更新 更多