Hibernate将用户模型保存到Postgres

时间:2010-08-31 11:14:43

标签: java hibernate postgresql orm

我正在使用Postgres通过Hibernate(注释),但它似乎在处理User对象时失败:

12:09:16,442 ERROR [SchemaExport] Unsuccessful: create table User (id  bigserial not null, password varchar(255), username varchar(255), primary key (id))
12:09:16,442 ERROR [SchemaExport] ERROR: syntax error at or near "User"

如果我手动运行SQL,我必须在表名周围加上引号,因为用户似乎是一个postgres关键字,但我怎么能说服hibernate自己做呢?

提前致谢。

2 个答案:

答案 0 :(得分:37)

使用保留关键字时,您需要转义表名。在JPA 1.0中,没有标准化的方法,Hibernate特定的解决方案是使用反引号:

@Entity
@Table(name="`User`")
public class User {
    ...
}

在JPA 2.0中,标准化语法如下所示:

@Entity
@Table(name="\"User\"")
public class User {
    ...
}

参考

答案 1 :(得分:3)

用户为a key word,找到更好的名称或使用引号:“用户”。 (不好主意imho,但如果你这样做无处不在