Java Hibernate将用户模型保存到Postgres
我通过Hibernate(注释)使用Postgres,但似乎在处理用户对象时遇到了麻烦:Java Hibernate将用户模型保存到Postgres,java,hibernate,postgresql,orm,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 er
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 {
...
}
工具书类
- Hibernate核心文档
- JPA2.0规范
- 2.13数据库对象的命名
“User”
和“User”
将是不同的表,它们也可以同时存在。PostgreSQL和SQL标准之间的唯一区别是:PG折叠为小写,而SQL折叠为大写。