Spring boot 带H2和Data.sql的Spring引导数据JPA-未找到表
我有一个SpringBoot2.5.0项目。我正在使用SpringDataJap和内存中的h2数据库。我想在启动时用data.sql文件填充数据,但我得到了一个table not found异常。如果删除data.sql文件,我可以看到实体的表会自动创建。但是如果我包含data.sql文件,我会得到一个错误,说该表不存在。可能是我的sql语法错误,我错误配置了h2数据库 application.yml data.sql BusinessSummary.java实体 BusinessSummaryRepository.java 默认情况下,data.sql脚本现在在运行Hibernate之前运行 初始化。这将调整基于脚本的基本脚本的行为 使用Flyway和Liquibase进行初始化。如果你想用 data.sql要填充Hibernate创建的架构,请设置 spring.jpa.defer-datasource-initialization为true。混合时 不建议使用数据库初始化技术,这将 还允许您使用schema.sql脚本在 Hibernate在通过data.sql填充架构之前创建了架构 您必须将spring.jpa.defer-datasource-initialization转换为yml 默认情况下,data.sql脚本现在在运行Hibernate之前运行 初始化。这将调整基于脚本的基本脚本的行为 使用Flyway和Liquibase进行初始化。如果你想用 data.sql要填充Hibernate创建的架构,请设置 spring.jpa.defer-datasource-initialization为true。混合时 不建议使用数据库初始化技术,这将 还允许您使用schema.sql脚本在 Hibernate在通过data.sql填充架构之前创建了架构 您必须将spring.jpa.defer-datasource-initialization转换为ymlSpring boot 带H2和Data.sql的Spring引导数据JPA-未找到表,spring-boot,spring-data-jpa,h2,Spring Boot,Spring Data Jpa,H2,我有一个SpringBoot2.5.0项目。我正在使用SpringDataJap和内存中的h2数据库。我想在启动时用data.sql文件填充数据,但我得到了一个table not found异常。如果删除data.sql文件,我可以看到实体的表会自动创建。但是如果我包含data.sql文件,我会得到一个错误,说该表不存在。可能是我的sql语法错误,我错误配置了h2数据库 application.yml data.sql BusinessSummary.java实体 BusinessSummary
spring:
datasource:
url: jdbc:h2:mem:test
driverClassName: org.h2.Driver
username: sa
password: sa
jpa:
database-platform: org.hibernate.dialect.H2Dialect
debug: true
INSERT INTO BUSINESS_SUMMARY VALUES (1, "ALM470", "B48", 3);
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@Getter
@Entity
public class BusinessSummary {
@Id
private Long id;
private String businessId;
private String businessDomainId;
private Integer cityCode;
}
@Repository
public interface BusinessSummaryRepository extends JpaRepository<BusinessSummary, Long> {
}
Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "BUSINESS_SUMMARY" not found; SQL statement:
INSERT INTO BUSINESS_SUMMARY VALUES(1, "ALM470", "B48", 3) [42102-200]