Spring Data 错误:“HHH000389 不成功:如果存在则删除表”

Posted

技术标签:

【中文标题】Spring Data 错误:“HHH000389 不成功:如果存在则删除表”【英文标题】:Spring Data error: " HHH000389 Unsuccessful: drop table if exists" 【发布时间】:2017-12-03 17:44:36 【问题描述】:

使用 Postgres 作为数据库和 Spring Boot + Spring Data 我正在尝试使用以下数据库配置属性以测试模式启动我的应用程序:

spring.datasource.driverClassName=org.postgresql.Driver
spring.datasource.url=jdbc:postgresql://localhost/members
spring.jpa.hibernate.ddl-auto=create-drop
spring.datasource.username=postgres
spring.datasource.password=password
spring.jpa.show-sql=true

我的表名为“会员”

当我第一次运行应用程序时,我可以看到表已创建。但是我不断收到以下错误:

2017-06-29 21:51:03.092 ERROR 1472 --- [           main] org.hibernate.tool.hbm2ddl.SchemaExport  : HHH000389: Unsuccessful: drop table member if exists
2017-06-29 21:51:03.093 ERROR 1472 --- [           main] org.hibernate.tool.hbm2ddl.SchemaExport  : ERROR: syntax error at or near "if"

【问题讨论】:

【参考方案1】:

在您的 application.properties 中,尝试添加以下内容:

spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQL9Dialect

这可能有助于您的 ORM 使其语言适应您正在使用的数据库。

干杯!

【讨论】:

【参考方案2】:

我正在使用 H2 并且出现相同的错误“不成功:如果存在则删除表 xxx”。 我尝试了所有的 dll-auto 和方言设置,但它不起作用。 然后我在我的电脑主目录中找到了一个名为

的文件

test.mv.db

其中“test”是我在 Spring 中为我的 H2 数据库设置的名称。 如果我删除此文件,当我重新启动应用程序时一切正常。

【讨论】:

以上是关于Spring Data 错误:“HHH000389 不成功:如果存在则删除表”的主要内容,如果未能解决你的问题,请参考以下文章

包含 Spring Data 时出现 Spring STS 错误

spring-boot-starter-data-jpa 依赖错误

spring data jpa 错误汇总

Spring-Data-Jpa 中一对多映射的 JSON 结果错误

运行 jar 时出现 Spring Boot 错误,但在 IDE 中工作正常(spring-boot-starter-data-jpa)

Spring Data JPA的低级错误