Прежде всего, недостаточно информации.
User updateUser (User tempUser) {
def id=tempUser.id
User user = User.get(id)//this line throws exception
Почему вы делаете это так?Является ли этот код в классе домена?
Вы можете обновить экземпляр пользователя классическим способом в вашем контроллере:
def userInstance = User.get(params.id)
if(userInstance) {
userInstance.properties = params
if (!userInstance.hasErrors() && userInstance.save(flush: true)) {
flash.message = "User was updated successfully"
// redirect somewhere
}
}
Также вы можете попробовать добавить метод в экземпляр пользователя (в классе домена пользователя)что-то вроде этого:
Class User {
[...]
def updateUserInstance(params) {
it.properties = params
if (!it.hasErrors() && it.save(flush: true)) {
return true // or return it
} else {
return false
}
}
}
и затем вызовите его в вашем контроллере:
def userInstance = User.get(params.id)
if(userInstance.updateUserInstance(params)) {
// do something
}
Я не тестировал фрагменты кода выше, так что будьте осторожны.А что касается вашего кода, было бы неплохо, если бы вы дали еще немного кода: части класса User, больше метода updateUser.
С уважением.