【发布时间】:2012-04-04 09:43:47
【问题描述】:
考虑 Grails 中的以下域类:
enum MyEnum { One, Two, Three }
class MyClass {
Collection mys = []
static hasMany = [
mys: MyEnum
]
static mapping = {
mys lazy: true
}
}
在 Postgres 9.1 数据库上使用“create-drop”运行应用程序时,出现以下错误:
Unsuccessful: create table myclass_mys (myclass_id int8, myenum varchar(-1))
ERROR: syntax error at or near "-"
如果我删除惰性映射,错误就会消失。但是,出于其他原因,懒惰是必要的。我目前的解决方法是创建没有延迟映射的数据库,然后更改域类,这在开发环境中非常烦人。
关于如何修复 gorm 映射以使 varchar(-1) 像往常一样成为 varchar(255) 的任何想法?
【问题讨论】:
-
您在 DataSources.groovy 中使用特定方言吗?
-
我尝试了 org.hibernate.dialect.PostgreSQLDialect 和 net.sf.hibernate.dialect.PostgreSQLDialect,结果相同。
标签: grails enums grails-orm postgresql-9.1