我正在通过 Hibernate(注释)使用 Postgres,但它似乎无法处理用户对象:
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,我必须在表名周围加上引号,因为 user 似乎是一个 postgres 关键字,但我如何才能说服 hibernate 自己执行此操作?
提前致谢。
最佳答案
使用保留关键字时需要对表名进行转义。在 JPA 1.0 中,没有标准化的方式,Hibernate 特定的解决方案是使用反引号:
@Entity
@Table(name="`User`")
public class User {
...
}
在 JPA 2.0 中,标准化语法如下所示:
@Entity
@Table(name="\"User\"")
public class User {
...
}
引用资料
- Hibernate 核心文档
- JPA 2.0 规范
- 2.13 数据库对象的命名
关于java - Hibernate 将用户模型保存到 Postgres,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3608420/