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

如何解决H2“执行DDL时出错”错误?

姚星河
2023-03-14

我想在springboot中通过H2创建表,但运行时出现以下错误:;

组织。冬眠地方话方言:hh000400:使用方言:org。冬眠地方话H2方言组织。冬眠工具模式。spi。CommandAcceptanceException:通过JDBC语句执行DDL“创建表bank_account(id bigint not null,balance double not null,full name varchar(128)not null,primary key(id))”时出错

...

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>

应用财产;

# 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”,然后问题就解决了。

共有1个答案

山鸿彩
2023-03-14

问题似乎是因为您试图使用hibernate auto ddl工具以及Spring Boots模式初始化数据库。sql文件。

根据文件:

在基于JPA的应用程序中,您可以选择让Hibernate创建模式或使用schema。sql,但不能同时执行这两项操作。确保禁用Spring。jpa。冬眠如果使用模式,ddl自动。sql

因此,要么拆下Spring。jpa。冬眠ddl auto=createproprerty或schema。sql文件,这样Spring Boot就不会试图获取它。

 类似资料: