当前位置: 首页 > 知识库问答 >
问题:

Spring Boot无法运行Schema.sql,并且依赖于spring-cloud-starter-config

濮君植
2023-03-14

我的spring Boot2.0应用程序识别并运行schema.sql来初始化我的嵌入式h2数据库。但是当我添加spring-cloud-starter-config依赖项时,应用程序不再运行schema.sql。为了说明,使用spring initializr生成一个spring Boot2(V2.0.1)应用程序,该应用程序依赖于:

  • 网站
  • REST存储库
  • JPA
  • H2
  • 配置客户端

添加实体:

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> {

}
package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

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
<!--
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-config</artifactId>
</dependency>
-->

共有1个答案

俞俊逸
2023-03-14

我也遇到过类似问题,但在H2数据库模式创建测试执行期间。我刚刚尝试了Spring Cloud的较新版本-spring-boot-starter-parent:2.0.2.releasefinchley.rc2,它在我的情况下起作用。

我花了几分钟来演示您的示例--可以在Spring Boot 2.0.1和Spring Cloud finchley.rc1中复制,但在2.0.2和finchley.rc2中运行良好。我没有找到github问题,但看起来它已经修复了。

 类似资料:
  • 对于 REST API 的测试部分。正在查看可以在Spring启动中使用的依赖项。我看到有JUnit依赖项和Spring启动器测试依赖项。 JUnit依赖项和Spring Boot启动器测试依赖项有什么区别?

  • 我有一个基本的Spring Boot项目,在这个项目中,我试图用RabbitMQ实现简单的消息传递。当我将spring-boot-starter-amqp依赖项添加到我的文件并启动Spring Boot应用程序时,我会得到导致的异常: pom.xml 如果我从pom.xml中移除spring-boot-starter-amqp依赖项,项目将不会出错:

  • 我正在开发微服务,需要通过尤里卡服务器与服务注册中心交互。但是在pom.xml中出现了以下错误。在maven外部库的project structure中,没有spring-cloud依赖项,我无法在main类中使用注释。错误是 Dependency org.springframework.cloud:spring-cloud-starter-netflix-eureka-client:${proj

  • 我们在Jetty上使用Spring Boot(2.7.x)。依赖扫描器告诉我们,依赖树中仍然有Tomcat依赖。 当查看spring boot starter jetty 2.7.1的POM时,我发现spring boot starter jetty依赖于tomcat embed el。tomcat嵌入el包含来自javax的类。el和组织。阿帕奇。el包,所以我认为这是Tomcat的表达式语言解

  • 我在heroku的示例应用程序的基础上,根据他们的教程,启动了一个spring boot应用程序。 我正在运行postgres docker容器,应用程序可以正确连接到该容器。现在我想使用Hibernate(遵循本Baeldung指南,但当我添加Jpa依赖项时: 然后我得到以下错误时运行的应用程序: 我不理解这个错误,也找不到太多关于它的信息(或者我不理解)。有人建议我检查配置,尽管我不确定我会错

  • 我使用的是eclipse 2018、gradle 5.2.1、buildship 3.0.1。 我的配置看起来像: 我尝试根据building-spring-boot-2-projects-with-gradle创建spring boot 2 是: 但是,在我保存构建之后。gradle,项目和外部依赖关系消失,Spring Bootjar也没有下载。 我错了什么? 如果我使用gradle by s