Grails save(flash:true)

Mic*_*ulc 1 grails hibernate

我继承了Grails 2.3.7中的项目,发现很少出现:

domainInstance.save(flash:true)
Run Code Online (Sandbox Code Playgroud)

我知道flush(即时提交更改),但无法找到有关flash的任何内容.项目的编译和工作没有任何警告.它能做什么?它只是拼写,如果是,为什么在编译时找不到它?

chr*_*her 7

当你使用那种类型的方法调用时,实际上编译的是什么.

save(Map params)
Run Code Online (Sandbox Code Playgroud)

所以无论是......

save(flush: true)
Run Code Online (Sandbox Code Playgroud)

要么

save(flash: true, danceOnTheSpot: false)
Run Code Online (Sandbox Code Playgroud)

没关系.Groovy将选择它想要的位并忽略它没有的位.这在功能上等同于调用..

save()
Run Code Online (Sandbox Code Playgroud)

这真的很强大!一个包含50个方法调用的所有参数的映射.维护噩梦,但仍然非常酷.