一尘不染

如何配置Hibernate在表名周围加上引号

hibernate

我遇到一种情况,我试图在Postgres中创建一个名为“ user”的表,由于Hibernate没有将表名放在引号中而引发了错误:

| Error 2012-02-27 23:06:58,782 [Thread-10] ERROR hbm2ddl.SchemaExport  - Unsuccessful: create table user (id int8 not null, version int8 not null, account_expired bool not null, account_locked bool not null, email_address varchar(255) not null, enabled bool not null, first_name varchar(255) not null, last_name varchar(255) not null, mobile_number varchar(255) not null, "password" varchar(255) not null, password_expired bool not null, username varchar(255) not null unique, primary key (id))

尽管指定了它应在DataSource.groovy中使用PostgreSQLDialect,但是:

dialect = org.hibernate.dialect.PostgreSQLDialect

在处理Postgres时,如何配置Hibernate在表名周围加引号?


阅读 508

收藏
2020-06-20

共1个答案

一尘不染

您可以在mapping带反引号的块中引用表名。Hibernate会将其转换为基于Dialect的数据库引用方法:

static mapping = {
    table "`user`"
}

您也可以将表重命名为不需要引用/转义的其他名称,例如

static mapping = {
    table "users"
}
2020-06-20