java - Hibernate 将用户模型保存到 Postgres

标签 java hibernate postgresql orm

我正在通过 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 {
    ...
}

引用资料

关于java - Hibernate 将用户模型保存到 Postgres,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3608420/

相关文章:

python - 如何找到pg_config路径

java - maven-eclipse-插件 : how to force to use a jar dependency rather than project dependency

java - GSON不解析 boolean 值(始终为false)

Spring Boot JPA CrudRepository 选择性更新 - 只有一些属性

java - 指定单向 @OneToOne JPA 映射的所有者

postgresql - 如何使用重复的 1,2,3,4, 1,2,3,4,... 系列对行进行编号

java - 搜索具有 Big-O 时间限制的重复项

java - 如何计算时间表中的 "holes"

hibernate - JPA 2 Criteria API 中的 Hibernate Restrictions.sqlRestriction 等效吗?

PostgreSQL 9.1.9。使用与可以为空的字段连接的字符串更新字段会出错