我有一个包含spring数据的spring-boot项目。Myapplication.yml包含以下属性:
spring:
jpa:
hibernate:
ddl-auto: update
每次运行项目时,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
它不会真正影响项目或导致任何错误,但它确实困扰我,并可能导致应用程序启动较慢
你知道有什么配置可以禁用它吗?也许是因为hibernate无法判断这些列设置是否是最新的?
我为 double 字段尝试的一件事是,我尝试手动设置列刻度的手动值:
@Column(name = "POINTS", scale = -1)
private double points;
但什么都没改变
1条答案
按热度按时间0kjbasz61#
如果你不想在启动时改变数据库,你可以在application.yml中设置属性,如下所示:
或者需要检查表和实体的Map时
但是,这些属性意味着在添加新实体时必须手动创建表。