shi*_*123 11 java spring hibernate spring-data-jpa spring-boot
我有一个带有 spring 数据的 spring-boot 项目。我的 application.yml 包含此属性:
spring:
jpa:
hibernate:
ddl-auto: update
Run Code Online (Sandbox Code Playgroud)
每次我运行该项目时,Hibernate 都会对date、enum和float/double字段执行 ALTER TABLE 语句。
Hibernate show_sql 日志:
Hibernate: alter table activity_data modify column points float(53)
Hibernate: alter table activity_event modify column end_time datetime(6)
Hibernate: alter table activity_event modify column start_time datetime(6)
Hibernate: alter table giveaways modify column state enum ('CREATED','ENDED','GOING') not null
... and some more
Run Code Online (Sandbox Code Playgroud)
它并没有真正影响项目或导致任何错误,但它确实困扰我,并且可能导致应用程序启动速度变慢
您知道禁用它的任何配置吗?也许发生这种情况是因为休眠无法判断这些列设置是否是最新的?
我为双字段尝试的事情之一是,我尝试手动将手动值设置为列比例:
Hibernate: alter table activity_data modify column points float(53)
Hibernate: alter table activity_event modify column end_time datetime(6)
Hibernate: alter table activity_event modify column start_time datetime(6)
Hibernate: alter table giveaways modify column state enum ('CREATED','ENDED','GOING') not null
... and some more
Run Code Online (Sandbox Code Playgroud)
但它什么也没改变
小智 -5
如果您不想在启动时更改数据库,您可以在 application.yml 中设置该属性,如下所示:
ddl-auto: none
Run Code Online (Sandbox Code Playgroud)
或者当您需要检查表和实体的映射时
ddl-auto: validate
Run Code Online (Sandbox Code Playgroud)
但是,这些属性意味着您在添加新实体时必须手动创建表。
| 归档时间: |
|
| 查看次数: |
1264 次 |
| 最近记录: |