我从spring initializr下载了带有web,jpa和postgres依赖关系的空项目。
在application.properties中添加了此配置
spring.datasource.driver-class-name=org.postgresql.Driver
spring.jpa.database-platform = org.hibernate.dialect.PostgreSQL94Dialect
spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true
spring.jpa.show-sql = true
spring.jpa.hibernate.ddl-auto = update
创建了Test类,这就是我所拥有的全部。
@Entity
@Table(name = "tests")
public class Test {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(length = 200)
private String author;
}
}
然后,当列的length参数更改时,数据库中什么也没有发生。
我试图删除一些列并更改一些其他参数,导致零个“ alter table” SQL语句。
仅当添加了新列时更新才起作用(更新仅在此具体的新列上仅起作用一次)。
答案 0 :(得分:1)
来自how does exactly spring.jpa.hibernate.ddl-auto property works in Spring?
例如,更新操作将尝试添加新的列,约束等,但绝不会删除以前可能存在但不再作为先前运行的对象模型一部分的列或约束。