12
我的Grails 2.0的应用程序已经定义了用户域对象:更改主键ID为String类型的Grails
class User {
static mapping = {
table "dt_user"
columns {
id column:'user_id', generator:'assigned', type:'string'
}
}
当我尝试在我的引导文件保存一个新的用户,像这样:
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
我也试图改变用户类此:
class User {
static mapping = {
table "dt_user"
columns {
id column:'user_id', generator:'assigned', type:'string', name:'id'
}
}
String id
}
这使得上述错误消失。但是,我发现这导致ID自动生成,完全忽略了generator: 'assigned'
条款。
我在这里做错了什么?