我通过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的解决方案是使用backticks:

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

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

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

工具书类

Postgresql相关问答推荐

Postgres BULK INSERT如何影响Debezium?

创建发布性能

Postgres SQL:获取列值在连续日期之间已更改的行

正在应用序列化迁移,但数据库没有更改

PostgreSQL:在 select 和 group by 中使用不同的列不会导致错误

使用 pgx 扫描范围类型

@符号在yacc中的函数中是什么意思

Postgres 转储按顺序插入

使用 pgx.CopyFrom 将 csv 数据批量插入到 postgres 数据库中

如何 Select 任意行的相邻行(在 sql 或 postgresql 中)?

Windows PSQL 命令行: is there a way to allow for passwordless login?

冲突中的 Postgres 会更新复合主键

从time without time zone和时区名称中获取time with time zone

如何正确索引多对多关联表?

在 Postgresql 中拆分逗号分隔的字段并对所有结果表执行 UNION ALL

在 Postgresql 中按窗口函数结果过滤

如何将 PostgreSQL 查询输出导出到 csv 文件

使用 SQLAlchemy 进行 PostgreSQL ILIKE 查询

使用 Postgresql 数据库(OSX Lion)创建 Rails 3.1 应用程序

如何使用 postgresql 按计数排序?