在文档中some examples调用 save
而 some others不要。我假设 addTo*
需要调用 save
而 removeFrom*
不需要。我错了吗?
最佳答案
在大多数情况下都不需要调用 save()
。您在“some examples”链接中看到的是对主域对象Author
的保存,它首先被持久化,然后其他属性将使用适当的id
链接回。例如,就持久性而言,这两个片段是等效的:
def a = new Author(name: "Stephen King")
.addToFiction(fictBook)
.addToNonFiction(nonFictBook)
.save()
和
def a = new Author(name: "Stephen King").save()
a.addToFiction(fictBook)
a.addToNonFiction(nonFictBook)
有时,如果您需要 id
进行进一步的依赖操作,则需要 save(flush:true)
操作,否则不需要。
要进行测试,请打开两个浏览器,在一个浏览器上单击应用程序,在另一个浏览器上观察 .../dbconsole
- 持久性会提示,无需显式保存。
关于Grails:addTo* 和removeFrom* 是否需要调用来保存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30892302/