保存在我的域类对象不起作用。

时间:2012-01-29 07:46:05

标签: grails groovy

我有一个User类,它有一个List字段即pt。用户注册其帐户时,不会初始化此字段。但是当用户执行此控制器操作时:

def updatePt() { 
       //performs some action 
       def user = User.get(springSecurityService.principal.id)  //find the user 
       user.pt = [] 
       //on certain conditions i put values into user.pt like this 
       user.pt << "E" 
       //at last I save it 
       user.save() 
} 

但是通过脚手架使用user / show动作我发现pt字段没有保存在用户对象上。我在哪里弄错了?

2 个答案:

答案 0 :(得分:1)

由于验证错误,这是可能的。试试

if (!user.save()) {
   log.error('User not saved')
   user.errors.each {
       log.error('User error: $it')
   }
}

PS或您可以使用println代替log.error

答案 1 :(得分:1)

您必须在Users域类中提供静态映射,以便Grails知道该字段必须保留:

class User {
    static hasMany = [pt: String]
}