spring.jpa.hibernate.ddl-auto =在application.properties中更新的问题

时间:2019-08-28 08:26:54

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

在此行中,文件application.properties有问题:

spring.jpa.hibernate.ddl-auto=update

当我从实体中删除某些属性时,这些属性仍保留在数据库中。

这是application.properties的副本:

spring.jpa.generate-ddl=true
spring.jpa.show-sql = true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect = 
org.hibernate.dialect.MySQL5Dialect
spring.datasource.driverClassName = com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/taskmanagement
spring.datasource.username = root
spring.datasource.password = 
server.port=89
spring.data.rest.default-media-type= application/json

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

如果要基于对象映射重新创建数据库架构,只需使用:

spring.jpa.hibernate.ddl-auto=create

但是请记住,这将破坏您保存在数据库中的数据。

其他选择是使用create-drop-这将在应用程序终止时破坏数据库架构。

编辑:

您必须在不破坏数据的情况下更新数据库架构。假设您要更改某个字段的数据类型,并且已经有数据。数据库不知道如何转换现有数据。

答案 1 :(得分:0)

属性update的{​​{1}}值仅尝试添加新的列和约束。它不会从表中删除现有列。尝试使用spring.jpa.hibernate.ddl-autocreate