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'
條款。
我在這裏做錯了什麼?