Grails:addTo* 和removeFrom* 是否需要调用来保存?

标签 grails grails-orm grails-2.0 grails-domain-class

在文档中some examples调用 savesome others不要。我假设 addTo* 需要调用 saveremoveFrom* 不需要。我错了吗?

最佳答案

在大多数情况下都不需要调用 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/

相关文章:

grails - grails验证嵌套的命令对象不起作用

Grails 卡在正在运行的 Grails 应用程序上

grails - 仅显示最后10个字符

grails - 如何在Grab功能测试中切换引导选项卡?

hibernate - Grails Gorm 超时 : Pool empty. 无法获取连接

mysql - 如何处理 Grails/GORM 中破裂的关系?

testing - 如何在 Grails 2.0 服务中单元或集成测试使用注入(inject)的 messageSource for i18n

grails - 命令行中的Grails在线程中获取数字格式异常,无法恢复

grails - 阻止Grails停止HTML编码消息?

java - 有关在 GORM 中保存的更多信息