【发布时间】:2012-02-09 23:55:21
【问题描述】:
我的 Grails 2.0 应用定义了一个用户域对象:
class User {
static mapping = {
table "dt_user"
columns {
id column:'user_id', generator:'assigned', type:'string'
}
}
当我尝试像这样在我的 BootStrap 文件中保存新用户时:
def user = new User(id: "smith").save(failOnError:true)
我收到以下错误:
| Error 2012-01-13 10:09:42,659 [main] ERROR property.BasicPropertyAccessor - IllegalArgumentException in class: User, setter method of property: id
| Error 2012-01-13 10:09:42,660 [main] ERROR property.BasicPropertyAccessor - expected type: java.lang.Long, actual value: java.lang.String
我也尝试将 User 类更改为:
class User {
static mapping = {
table "dt_user"
columns {
id column:'user_id', generator:'assigned', type:'string', name:'id'
}
}
String id
}
这使上述错误消失了。但是我发现这会导致自动生成 id,完全忽略了generator: 'assigned' 子句。
我在这里做错了什么?
【问题讨论】:
标签: grails grails-orm