Grails:addTo *和removeFrom *需要调用保存吗?

时间:2015-06-17 12:56:25

标签: grails gorm grails-2.0 grails-domain-class

在文档some examples中调用addTo*some others则不调用save。我假设removeFrom*需要调用<input type='reset' class="button_grey resetForm" value='Reset'> ,而// you can add error fields var validator = $("#cad_principal").validate({ focusCleanup: true }); 则不需要调用$('[type="reset"]').on('click', function(){ $("#cad_principal").closest('form').find("input[type=text], textarea").val(""); $('input:checkbox').removeAttr('checked'); validator.resetForm(); return false; }); 。我错了吗?

1 个答案:

答案 0 :(得分:2)

在大多数情况下都不需要调用save()。您在“some examples”链接中看到的是对主域对象Author的保存,它首先被保留,然后其他属性将使其在数据库中以适当的{{ 1}}链接回来。例如,就持久性而言,这两个片段是等效的:

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) 之后进行进一步的依赖操作,则需要进行save(flush:true)操作,否则就没有必要。

要进行测试,请打开两个浏览器,一个点击您的应用,另一个观看您的id - 持久性提示,而无需明确保存。