Как устранить ошибку H2 "Ошибка выполнения DDL"? - PullRequest
0 голосов
/ 11 февраля 2019

Я хочу создать таблицу через H2 в springboot, но при запуске у меня появляется следующая ошибка:

org.hibernate.dialect.Dialect: HHH000400: Использование dialect: org.hibernate.dialect.H2Dialect org.hibernate.tool.schema.spi.CommandAcceptanceException: Ошибка при выполнении DDL "создать таблицу bank_account (идентификатор bigint не ноль, баланс двойной не ноль, полное имя varchar (128) не ноль, первичный ключ (id))" черезЗаявление JDBC

...

data.sql:

Insert into Bank_Account(ID, Full_Name, Balance) values (1, 'Ibrahim', 2500);
Insert into Bank_Account(ID, Full_Name, Balance) values (2, 'Ates', 4210);

pom.xml;

<dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <scope>runtime</scope>
        </dependency>

Application.properties;

# H2
spring.h2.console.enabled=true
spring.h2.console.path=/h2
# Datasource
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.datasource.continue-on-error=true
spring.jpa.hibernate.ddl-auto=create

Что я пропустил?


решение;

Проблема была вызвана именем столбца сущности.Я изменил сущность с именем «Full Name» на «Full_Name», затем проблема была решена.

Ответы [ 2 ]

0 голосов
/ 11 февраля 2019

Добавьте следующее свойство в ваш application.properties файл

spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.H2Dialect
0 голосов
/ 11 февраля 2019

Кажется, проблема связана с тем, что вы пытаетесь инициализировать базу данных как с помощью инструмента hibernate auto-ddl, так и файла schema.sql Spring Boots.

Согласно документации:

В приложении на основе JPA вы можете разрешить Hibernate создать схему или использовать schema.sql, но вы не можете сделать оба .Обязательно отключите spring.jpa.hibernate.ddl-auto, если вы используете schema.sql.

Так что удалите файл spring.jpa.hibernate.ddl-auto=create proprerty или schema.sql, чтобы Spring Boot не пыталсяподнять его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...