grails - 如何在Groovy中将多个对象添加到对象属性? —在Bootstrap.groovy中

标签 grails

在Grails中创建一个简单的采购订单应用程序,我在其中具有类别(例如:电视,视频...),品牌和商品。品牌与(hasMany)相关类别,例如Sony制造视频和电视。

在Bootstrap.groovy中,我想执行以下操作:

Brand jvc = new Brand(name:"JVC")
Brand sony = new Brand(name:"Sony")
Brand samsung = new Brand(name:"Samsung")

Category tv = new Category(name:"Television")
Category video = new Category(name:"Video")
Category laptop = new Category(name:"Laptop")

sony.categories.(tv)   ----> These methods are wrong
sony.addCategory(video) ----> These methods are wrong
sony.addCategory(laptop)

如何将品牌与多个类别相关联?请注意,我尝试了许多不同的方法模板,但均无效果。 Brand类中的属性为静态hasMany [categories:Category]。

最佳答案

当您有了static hasMany = [categories:Category]时,这会将一个名为Setcategories添加到您的类中,并添加一个可以满足您需要的动态方法addToCategories。如果集合为空,它将初始化集合(新实例将是这种情况),然后将实例添加到集合中;如果是双向的,它将设置反向引用。所以最后三行应该是

sony.addToCategories(tv)
sony.addToCategories(video)
sony.addToCategories(laptop)

这是user guide和每本有关Grails的书中所描述的,因为它是映射集合的非常基本的功能。

关于grails - 如何在Groovy中将多个对象添加到对象属性? —在Bootstrap.groovy中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7250443/

相关文章:

grails - 在Grails中管理日志文件

grails - Grails Twitter Bootstrap Modal以服务器端方式加载内容

grails - 如何使用GRAILS从数据库下载html文件?

unit-testing - 如何正确地将 grails 单元测试辅助方法移动到单独的文件中?

grails - artifact.clazz和bean.class之间的区别

grails - 使用Grails acegi插件共享 session (或cookie)

grails - 使用Grails2资源插件,当在JavaScript中包含参数时,如何防止在r:img标记中转义?

grails - 使用Micronaut声明式客户端从Flowable响应中获取 header

grails - 未加载Grails网址映射布局

Grails/GORM : creating one-to-one optional relationship