如何创建名为“user”的表

时间:2014-05-29 09:18:59

标签: hibernate grails gorm grails-2.0

我现在在GORM工作,我遇到了非常复杂的问题,

我的域名类别为User,要通过GORM进行自定义映射,表名应为user,但不允许创建名称为' user'的表。因为user是大多数数据库系统中的关键字(我正在使用PostgresSQL)

我从Grails读过GORM文档,但我无法找到,如何映射表和域类,它在命名约定中有任何违规。

否则请解决此问题的更好方法是什么.................

create table user (id varchar(20))


ERROR:  syntax error at or near "user"
LINE 1: create table user (id varchar(20))
                     ^
********** Error **********

ERROR: syntax error at or near "user"
SQL state: 42601
Character: 14

1 个答案:

答案 0 :(得分:1)

最佳解决方案是避免使用用户等保留名称。

但是,如果你不能,那么你可以在带有反引号的映射块中引用表名。然后,Hibernate会将这些转换为数据库的引用/转义方法。例如:

static mapping = {
    table "`user`"
}

希望这有帮助。