2017-09-26 111 views
0

我在使用它之后如何清除会话,我有一个问题。我已经打了一个会议,当它安全时,我希望它被冲走。我在保存之后在控制器中刷新会话

在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 
 

 
}

EDIT提前1个

def save() //generated by grails 
 
{ 
 

 
project.save flush:true 
 
}

感谢。

最好的问候,熙

回答

0

你应该看的第一件事是以下行

def projectNames = Project.findAllByProjectName(project.projectName) 

你取的这个名字project.projectName匹配的项目列表,所以它返回项目实例List<Project> projectNames的列表。

你应该叫

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

我没有看到你的代码中的任何更新操作,只是wndering为什么你真的需要一个保存调度研究在这里。

+0

感谢您的回复! “创建”控制器是一种形式,它由grails生成。 (generate-all),所以我的“安全”控制器将成为由grails生成的按钮“create”。 既然“安全”的代码是“flush:true”,为什么会话不会被刷新呢? *我更新了我的save()控制器 – Trainee

相关问题