【问题标题】:Flush session in controller, after I saved在我保存后刷新控制器中的会话
【发布时间】:2017-09-26 08:20:15
【问题描述】:

我有一个关于如何在我使用完会话后将其冲走的问题。我已经召集了一个会话,当它安全时,我希望它被冲走。

在 save() 控制器上它有 .save flush:true 但为什么会话没有被清除?

我已经对刷新会话进行了一些研究,但不幸的是我太菜鸟无法理解它。

相关帖子:

  1. How to force flushing in Grails GORM
  2. Do I ever need to explicitly flush GORM save calls in grails?

控制器:

def create(){


   def project = session['projectName'] // call out my session
   def projectNames     = Project.findAllByProjectName(project.projectName) // find out the project name inside my session and assign it in to "projectNames"
   
   model:[projectNames:projectNames] // pass it to GSP and to let the user choose from the drop down
 
   projectNames.save flush:true // but is an error
   projectNames.currentSession.flush() //got no class currentSession

}

编辑 1

def save() //generated by grails
{

project.save flush:true
}

提前致谢。

最好的问候,嘻嘻

【问题讨论】:

    标签: session grails flush grails-controller


    【解决方案1】:

    首先你应该看的是下面一行

    def projectNames = Project.findAllByProjectName(project.projectName)
    

    您正在获取与名称 project.projectName 匹配的项目列表,因此它返回项目实例 List<Project> projectNames 的列表。

    你应该打电话给

    projectNames*.save(flush:true, failOnError: true)
    

    我在您的代码中没有看到任何更新操作,所以只是想知道为什么您真的需要在这里保存操作。

    【讨论】:

    • 感谢您的回复! “创建”控制器是一个表单,它是由 grails 生成的。 (全部生成),所以我的“安全”控制器将是由 grails 生成的按钮“创建”。既然“安全”有代码“flush:true”,为什么没有刷新会话? * 我更新了我的 save() 控制器
    猜你喜欢
    • 2015-07-10
    • 1970-01-01
    • 2011-07-15
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 2013-01-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多