我现在在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
答案 0 :(得分:1)
最佳解决方案是避免使用用户等保留名称。
但是,如果你不能,那么你可以在带有反引号的映射块中引用表名。然后,Hibernate会将这些转换为数据库的引用/转义方法。例如:
static mapping = {
table "`user`"
}
希望这有帮助。