Grails:在异步任务中使用GORM保存域模型

Grails:在异步任务中使用GORM保存域模型,grails,asynchronous,gorm,Grails,Asynchronous,Gorm,我使用的是Grails2.3.5,我正在任务块中使用gorm保存数据。 保存域模型时,任务挂起 这里有一段摘录: task { def j = new Job() j.name = "test" j.save() println "saved !" // never get here } 你知道如何在任务块中保存域模型吗 谢谢 卢卡试试下面的变化。值得注意的是,异步线程和Hibernate会话之间存在细微差别。更多信息,请参见参考文档中的 Job.async.ta

我使用的是Grails2.3.5,我正在任务块中使用gorm保存数据。 保存域模型时,任务挂起

这里有一段摘录:

task {
   def j = new Job()
   j.name = "test"
   j.save()

   println "saved !"  // never get here 
}
你知道如何在任务块中保存域模型吗

谢谢
卢卡

试试下面的变化。值得注意的是,异步线程和Hibernate会话之间存在细微差别。更多信息,请参见参考文档中的

Job.async.task {
   def j = new Job()
   j.name = "test
   j.save()
   ...
}

我在这里发布解决方案:

task {
    Job.withNewSession {
        def j = new Job()
        j.name = "test"
        j.save()
        ...
    }
}

提供更多的上下文。很难理解你在说什么。谢谢可能是验证错误?请尝试
j.save(flush:true,failOnError:true)
我不建议将它们用于生产,但它们可能有助于解决问题。这不起作用,但您为我指明了正确的方向。我发现
task{Job.withNewSession{
成功了……谢谢