2016-10-01 59 views
0

我正在使用Spring Boot JPA,没有在application.properties中配置dialect。 在我的输出,我可以看到,Hibernate是为了生成以下DDL命令:Hibernate生成无效DDL(PostgreSQL 9.6)

create table user 
(
    id int8 not null, 
    password varchar(255), 
    username varchar(255), 
    primary key (id) 
) 

导致一个语法错误,因为表的名称必须用引号括起来。

这是我的application.properties:

spring.datasource.url=jdbc:postgresql://localhost:5432/springtest 
spring.datasource.username=... 
spring.datasource.password=... 

spring.jpa.hibernate.ddl-auto=create-drop 
spring.jpa.show-sql=true 
+2

'user'是保留字(关键字)尝试其他名称(或引用它'CREATE TABLE“用户”...') – wildplasser

+0

不要使用需要引用的名称,即使您可以说服您的模糊处理层这样做。使用保留关键字作为标识符时,您会遇到更多问题 –

+0

*迷惑层*确实是正确的术语。例如:你多久看一次语法错误?只是不要相信它。不要依赖它。这是等待发生的破损。 IMnsHO – wildplasser

回答

0

您可以使用引号的表名。
这是我已经解决的罚款example之一。答案包含你需要的一切。