代码之家  ›  专栏  ›  技术社区  ›  Nital

无法从Spring Boot应用程序中的data.sql导入sql insert脚本数据

  •  1
  • Nital  · 技术社区  · 5 年前

    我有一个很基本的 Spring Boot schema.sql data.sql 它创造了 H2 DB 模式和导入数据。

    我的 schema H2 DB 但由于某些原因,数据没有被导入。我懂了 0 表中的记录。

    看起来是配置问题。请引导。

    enter image description here

        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.1.7.RELEASE</version>
            <relativePath/>
        </parent>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-rest</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <scope>runtime</scope>
        </dependency>
    

    应用程序.属性

    hibernate.jdbc.batch_size=500
    hibernate.show_sql=true
    hibernate.format_sql=true
    
    spring.datasource.driverClassName=org.h2.Driver
    spring.datasource.url=jdbc:h2:tcp://localhost/~/h2-dbs/demo-db
    spring.datasource.username=sa
    spring.datasource.password=
    spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
    

    drop table env if exists;
    create table env (
      id        int             auto_increment      primary key,
      name      varchar(250)    not null            default 'DEV',
      category  varchar(250)    not null            default 'LOWER',
      enabled   char(1)         not null            default 'Y'
    );
    

    insert into env (name, category) values
      ('DEV','LOWER'),
      ('QA','LOWER'),
      ('PERF','HIGHER'),
      ('CT','HIGHER'),
      ('UAT','HIGHER'),
      ('PROD','HIGHER');
    

    @Entity
    public class Env {
        private int id;
        private String name;
        private String category;
        private String enabled;
    
        @Id
        @Column(name = "id")
        @GeneratedValue(strategy = GenerationType.AUTO)
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        @Basic
        @Column(name = "name")
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        @Basic
        @Column(name = "category")
        public String getCategory() {
            return category;
        }
    
        public void setCategory(String category) {
            this.category = category;
        }
    
        @Basic
        @Column(name = "enabled")
        public String getEnabled() {
            return enabled;
        }
    
        public void setEnabled(String enabled) {
            this.enabled = enabled;
        }
    
        @Override
        public boolean equals(Object o) {
            if (this == o) return true;
            if (o == null || getClass() != o.getClass()) return false;
            Env env = (Env) o;
            return id == env.id &&
                    Objects.equals(name, env.name) &&
                    Objects.equals(category, env.category) &&
                    Objects.equals(enabled, env.enabled);
        }
    
        @Override
        public int hashCode() {
            return Objects.hash(id, name, category, enabled);
        }
    }
    

    @RepositoryRestResource
    public interface EnvRepository extends PagingAndSortingRepository<Env, Integer> {
    }
    

    DemoRestApp.java软件

    @SpringBootApplication
    public class DemoRestApp {
    
        public static void main(String[] args) {
            SpringApplication.run(DemoRestApp.class, args);
        }
    
    }  
    
    1 回复  |  直到 5 年前
        1
  •  2
  •   pvpkiran    5 年前

    你需要在属性文件中有这个

    spring.jpa.hibernate.ddl-auto=none  
    

    here 更多的信息。如您所见,文档中有一条说明

    在基于JPA的应用程序中,您可以选择让Hibernate创建模式