Grails 在使用CRUD scaffold之前无法保存域对象

Grails 在使用CRUD scaffold之前无法保存域对象,grails,controller,persistence,Grails,Controller,Persistence,我在Grails项目中遇到了一个最奇怪的控制器问题。我正在尝试对域对象进行简单的更新。这是控制器的简化版本 def updateRecord = { def foundHVT = Process.get(params.hvt) foundHVT.summaryBy = params.summaryBy foundHVT.catalogBy = params.catalogBy foundHVT.editBy = params.editBy foundHV

我在Grails项目中遇到了一个最奇怪的控制器问题。我正在尝试对域对象进行简单的更新。这是控制器的简化版本

def updateRecord = {
    def foundHVT = Process.get(params.hvt)

    foundHVT.summaryBy = params.summaryBy
    foundHVT.catalogBy = params.catalogBy
    foundHVT.editBy = params.editBy
    foundHVT.produceBy = params.produceBy
    foundHVT.correctedBy = params.correctedBy
    // a bunch more of these

    foundHVT.save(flush: true);

    redirect (action:resource, id: params.hvt)
}
如果我运行的应用程序的新实例并使用此控制器更新对象,则该控制器不起作用,对象也不会保存。它在控制器内看起来会很好。例如,我可以重新查询对象,并在那里进行更改,然后保存

现在这里是它变得奇怪的地方。如果我使用预设的脚手架编辑控制器并更新/保存一个域对象,然后切换回这个“updateRecord”控制器,它工作正常,直到我关闭它正在工作的服务器

我意识到我遗漏了一些非常基本的东西,但我找不到它是什么。任何指导都将不胜感激


DM

如果控制器中还没有正常的入口点,请尝试在控制器中放置“def scaffold=true”。

可能scaffold
save
会填充一些您没有的字段

可能的问题:

  • 检查
    save()
    result并以Grails的方式呈现
    foundHVT.errors
    。将
    failOnError:true
    参数添加到
    save()
    或只需检查
    foundHVT.hasrerrors()
    。查看
    foundHVT.errors.allErrors
    以了解验证问题

  • 为什么不
    foundHVT.properties=params

  • 什么是没有
    foundHVT


  • 正如HVGOTCODES所指出的那样,grailsclean似乎已经修复了这个控制器的任何奇怪之处

    听起来有些不对劲。您尝试过grails clean吗?还有,您是否遇到任何异常?您启用了sql日志记录吗?是的,对不起,我确实启用了,我只是草拟了控制器的基本原理,它没有报告任何错误。自从清理项目以来,它一直运转良好。