gpt4 book ai didi

data-binding - Grails - 从数据绑定(bind)的hasMany关联列表中删除项目?

转载 作者:行者123 更新时间:2023-12-03 21:20:30 24 4
gpt4 key购买 nike

Grails 提供了自动创建域对象并将其绑定(bind)到 hasMany 列表的能力,如 grails user guide 中所述。 .

因此,例如,如果我的域对象“作者”有一个包含许多“书”对象的列表,我可以使用以下标记(来自用户指南)创建和绑定(bind)这些对象:

<g:textField name="books[0].title" value="the Stand" /> 
<g:textField name="books[1].title" value="the Shining" />
<g:textField name="books[2].title" value="Red Madder" />

在这种情况下,如果指定的任何书籍尚不存在,Grails 将创建它们并适本地设置它们的标题。如果指定索引中已经有书籍,则它们的标题将被更新并被保存。我的问题是:是否有一些简单的方法可以告诉 Grails 从数据绑定(bind)的“书籍”关联中删除其中一本书?

最明显的方法是省略与您要删除的域实例对应的表单元素;不幸的是,根据用户指南,这不起作用:

Then Grails will automatically create a new instance for you at the defined position. If you "skipped" a few elements in the middle ... Then Grails will automatically create instances in between.



我意识到可以将特定的解决方案设计为命令对象的一部分,或者作为特定 Controller 的一部分——但是,在我的应用程序中、跨多个域对象和许多不同类型对象的关联时,对这个功能的需求反复出现.因此,一个通用的解决方案将是理想的。有谁知道Grails中是否包含类似的东西?

最佳答案

有关使用 GORM 删除子对象集合的详细说明,请查看此博客文章的删除子对象部分 - GORM gotchas part 2

推荐阅读,本系列的第 1 部分和第 3 部分也是如此。

关于data-binding - Grails - 从数据绑定(bind)的hasMany关联列表中删除项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2730409/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com