org.h2.jdbc.JdbcSQLException: число столбцов не совпадает, когда это делает - PullRequest
0 голосов
/ 24 августа 2018

Я настроил следующий POJO:

@Getter
@Setter
@AllArgsConstructor
@Entity
@Table(name = "SpreadsheetRequest")
public class SpreadsheetRequest {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(updatable = false, nullable = false, unique = true)
    @Getter(AccessLevel.NONE)
    @Setter(AccessLevel.NONE)
    private Integer id;

    private String spreadsheetId;
    private String name;
    private String range;

    @SuppressWarnings("unused")
    public SpreadsheetRequest() {
        setSpreadsheetId(null);
        setName(null);
        setRange(null);
    }
}

И настроил мою среду следующим образом:

spring.h2.console.enabled=true
spring.h2.console.path=/h2
spring.datasource.url=jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.datasource.initialization-mode=embedded
spring.jpa.properties.hibernate.hbm2ddl.import_files=classpath://resources/import.sql
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.H2Dialect
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=create

import.sql выглядит так:

INSERT INTO SPREADSHEET_REQUEST VALUES ('DYsErzRPCLEoYYzQkemEAeerYiQ3Usyn','Test','Sheet1!A1:A12');

Я получаю следующую ошибку при загрузке:

Caused by: org.h2.jdbc.JdbcSQLException: Column count does not match; SQL statement:
INSERT INTO SPREADSHEET_REQUEST VALUES ('DYsErzRPCLEoYYzQkemEAeerYiQ3Usyn','Test','Sheet1!A1:A12') [21002-197]

Что вызывает это?

1 Ответ

0 голосов
/ 24 августа 2018

Причина

Количество столбцов не совпадает

Вы пытаетесь вставить 3 столбца, в то время как ваша сущность (так и таблица в db) имеет 4 столбца. Включить id в запрос:

INSERT INTO SPREADSHEET_REQUEST VALUES (1, 'DYsErzRPCLEoYYzQkemEAeerYiQ3Usyn','Test','Sheet1!A1:A12');
...