Java Spring Boot无法运行依赖于Spring cloud starter配置的schema.sql
我的spring boot 2.0应用程序识别并运行schema.sql来初始化嵌入式h2数据库。但是,当我添加SpringCloudStarter配置依赖项时,应用程序不再运行schema.sql。为了举例说明,使用生成依赖于以下各项的Spring Boot 2(v2.0.1)应用程序:Java Spring Boot无法运行依赖于Spring cloud starter配置的schema.sql,java,spring,spring-boot,spring-cloud,Java,Spring,Spring Boot,Spring Cloud,我的spring boot 2.0应用程序识别并运行schema.sql来初始化嵌入式h2数据库。但是,当我添加SpringCloudStarter配置依赖项时,应用程序不再运行schema.sql。为了举例说明,使用生成依赖于以下各项的Spring Boot 2(v2.0.1)应用程序: 网 rest存储库 jpa 氢 配置客户端 添加实体: package com.example.demo; import javax.persistence.*; @Entity public cla
- 网
- rest存储库
- jpa
- 氢
- 配置客户端
package com.example.demo;
import javax.persistence.*;
@Entity
public class Room {
@Id
@Column(name = "ROOM_ID")
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
@Column
private String name;
//...getters and setters
}
实体的存储库:
package com.example.demo;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface RoomRepository extends CrudRepository<Room, Long> {
}
将schema.sql和data.sql文件添加到参考资料下的基本文件夹中。Spring Boot使用这些属性创建和填充实体的基础表:
package com.example.demo;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface RoomRepository extends CrudRepository<Room, Long> {
}
schema.sql:
CREATE TABLE ROOM(
ROOM_ID BIGINT AUTO_INCREMENT PRIMARY KEY,
NAME VARCHAR(16) NOT NULL,
);
data.sql:
INSERT INTO ROOM (NAME) VALUES ('Piccadilly');
INSERT INTO ROOM (NAME) VALUES ('Cambridge');
INSERT INTO ROOM (NAME) VALUES ('Oxford');
INSERT INTO ROOM (NAME) VALUES ('Manchester');
用此application.yml替换空的application.properties:
spring:
jpa:
hibernate.ddl-auto: none
现在,运行应用程序并转到。应用程序将失败,JdbcSQLException显示该表不存在:
org.h2.jdbc.JdbcSQLException:未找到表“房间”;SQL语句:
从房间0中选择房间0。房间id为房间id 1,房间0。名称为名称2_
现在进入pom.xml并注释掉对spring cloud starter配置依赖项的引用:
<!--
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
-->
我也有类似的问题,但在H2数据库模式创建的测试执行期间。我刚刚尝试了SpringCloud的较新版本-SpringBootStarter父版本:2.0.2.RELEASE
和Finchley.RC2
,它在我的情况下工作
花了几分钟的时间介绍您的示例-可在Spring Boot 2.0.1和Spring Cloud Finchley.RC1中重现,但在2.0.2和Finchley.RC2中效果良好。
我没有找到github问题,但看起来问题已经解决。你能发布你的主类吗?添加了主类。它和initialzr生成的一样。我也遇到了这个。请看我的最新作品评论。使用Finchley.RC2
和spring boot starter父级:2.0.3.发布
。