一尘不染

Hibernate将用户模型保存到Postgres

hibernate

我正在通过Hibernate(注释)使用Postgres,但似乎已经无法处理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自己做呢?

提前致谢。


阅读 198

收藏
2020-06-20

共1个答案

一尘不染

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

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

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

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

参考文献

2020-06-20