【发布时间】:2021-02-12 20:20:20
【问题描述】:
我正在尝试在我的数据库初始化时启动一个 SQL 文件。
这是我的配置:
spring:
profiles: local
jpa:
properties:
hibernate.temp.use_jdbc_metadata_defaults: false
generate-ddl: true
hibernate:
ddl-auto: update
database: h2
show-sql: true
autoCommit: false
datasource:
platform: h2
url: jdbc:h2:mem:db;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false;
driver-class-name: org.h2.Driver
initialization-mode: always
data: classpath:/sql/CreateGeographicZones.sql
我的脚本就是这一行(atm):
INSERT INTO GEOGRAPHIC_ZONE (name) VALUES ('EUROPE');
以及相关实体:
@NoArgsConstructor
@Data
@Entity
@Table(name = "GEOGRAPHIC_ZONE")
public class GeographicZone {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "geo_zone_sequence")
@SequenceGenerator(name = "geo_zone_sequence", sequenceName = "geo_zone_id_seq", allocationSize = 1)
@Column(nullable = false)
private Long id;
...
}
正如我在日志中看到的那样,该表已创建:
Hibernate: create table geographic_zone (id bigint not null, name varchar(100) not null, primary key (id))
但是我在执行脚本时出现了一个 SQL 错误:
Table "GEOGRAPHIC_ZONE" not found; SQL statement:
INSERT INTO GEOGRAPHIC_ZONE (name) VALUES ('EUROPE')
在日志中我可以看到我的表是在脚本执行之前创建的,为什么它不起作用?
【问题讨论】:
标签: spring-boot hibernate spring-data-jpa