代码之家  ›  专栏  ›  技术社区  ›  rich

Hibernate将用户模型保存到Postgres

  •  17
  • rich  · 技术社区  · 16 年前

    我通过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自己这样做呢?

    提前谢谢。

    2 回复  |  直到 16 年前
        1
  •  49
  •   Pascal Thivent    16 年前

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

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

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

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

    工具书类

        2
  •  3
  •   Frank Heikens    16 年前

    用户是 a key word ,找到更好的名称或使用引号:“User”。(不好的主意,但是如果你这么做了,它会起作用的