@column注解不会更改nullable

jljoyd4f  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(565)

我错误地将@column注解属性设置为false,而我的目的是将其设置为true。

@Column(nullable = false)
private String title;

我试图在创建表后将属性更改为true,但在我的表中没有更改。即使我的application.properties文件中有以下行:

spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

现在,当我尝试创建一个新记录时,我得到了以下错误:

SQL Error: 1048, SQLState: 23000
Column 'title' cannot be null

我知道我可以通过phpmyadmin手动更改可空性,但是我想知道为什么在创建表之后列注解属性不起作用。

polkgigr

polkgigr1#

发件人:spring.jpa.hibernate.ddl-auto属性在spring中究竟是如何工作的?
例如,update操作将尝试添加新的列、约束等,但决不会删除以前可能存在但不再作为对象模型一部分的列或约束。
通常,模式生成工具主要用于原型设计、测试和验证。使用专用工具的增量脚本是更好的生产解决方案。
文档中也有关于此的注解:
尽管自动模式生成对于测试和原型设计非常有用,但在生产环境中,使用增量迁移脚本管理模式要灵活得多。
我对这类工具不太熟悉,但举个例子,liquibase只是第一个出现在我脑海中的工具。

相关问题