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

时间:2017-06-29 21:08:51

标签: postgresql spring-boot spring-data

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

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"

2 个答案:

答案 0 :(得分:0)

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

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

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

干杯!

答案 1 :(得分:0)

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

的文件

test.mv.db

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