在spring安全生成的类UserRole或SecUserSecRole (您可以选择将其命名为任何名称)中,有一个命令可以创建new UserRole()并用.save(flush:flush, insert:true)保存它
那是什么意思?它和.save有什么不同之处(flush:true)?
发布于 2012-02-16 05:29:48
从Grails docs
set (可选)-如果设置为true,将强制Hibernate执行
INSERT,这在涉及遗留数据库(如AS/400)并且Hibernate无法检测是执行insert还是UPDATE
的某些情况下非常有用
发布于 2013-06-27 23:10:29
人们通常使用flush(),因为他们对Hibernate的工作方式感到不舒服。
如果您需要了解更多信息,请查看http://blog.springsource.com/2010/06/23/gorm-gotchas-part-1/
但是,有时您需要这样做,特别是当您在与save()调用相同的线程中工作时,您需要确保域对象被持久化到DB中。此外,域中的一些约束使用数据库来检查数据是否有效。有时有必要确保验证有效。这里有一个这样的例子:
http://johnrellis.blogspot.com/2009/09/grails-constraints-across-relationships.html
所以基本上,你应该只使用flush,如果你真的需要在数据库中的东西现在!这比你想象的要少。希望这能有所帮助,在关于冲水的对话中不要有一点厕所幽默……太骄傲了:)
网址:http://grails.1312388.n4.nabble.com/When-to-use-domain-save-flush-true-or-domain-save-td2289869.html
https://stackoverflow.com/questions/9301395
复制相似问题