在grails中使用自定义ID时出现错误

时间:2018-10-18 04:07:44

标签: grails

我想要一个自定义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] } } } 用户置于保存功能,但也无法正常工作。

1 个答案:

答案 0 :(得分:1)

如果没有建立测试用例来重现这一点,它看起来就很可疑

redirect user

正尝试重定向到/user/show/<user.id>,如错误消息所提示,请考虑将其替换为

redirect(action: 'show', params:[id:user.id_user])

我对自定义id并不精通,因此我不确定所有细微差别,但是您使用的重定向快捷方式可能无法正确地尊重它们。