我想要一个自定义ID,因为默认情况下grails处理ID名称。我有一个像这样的域类:
checked
保存用户时,在保存操作中出现以下错误“ class User {
Long id_user
String name
...
static mapping = {
id generator: 'increment', name: "id_user", type: 'Long'
}
...
}
”
Can not redirect for object [project.User: (unsaved)] it is not a domain or has no identifier. Use an explicit redirect instead
为更正错误,我尝试将def save(User user) {
if (user == null) {
notFound()
return
}
try {
userService.save(user)
} catch (ValidationException e) {
respond usuario.errors, view:'create'
return
}
request.withFormat {
form multipartForm {
flash.message = message(code: 'default.created.message', args: [message(code: 'user.label', default: 'User'), user.id])
redirect user
}
'*' { respond user, [status: CREATED] }
}
}
用户置于保存功能,但也无法正常工作。
答案 0 :(得分:1)
如果没有建立测试用例来重现这一点,它看起来就很可疑
redirect user
正尝试重定向到/user/show/<user.id>
,如错误消息所提示,请考虑将其替换为
redirect(action: 'show', params:[id:user.id_user])
我对自定义id
并不精通,因此我不确定所有细微差别,但是您使用的重定向快捷方式可能无法正确地尊重它们。