Grails 如何在Groovy中将多个对象添加到对象属性中在Bootstrap.groovy中

Grails 如何在Groovy中将多个对象添加到对象属性中在Bootstrap.groovy中,grails,Grails,在Grails中制作一个简单的采购订单应用程序,其中我有类别(例如:电视、视频…),品牌和项目。一个品牌是相关的(有很多)类别,例如索尼生产视频和电视 在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:

在Grails中制作一个简单的采购订单应用程序,其中我有类别(例如:电视、视频…),品牌和项目。一个品牌是相关的(有很多)类别,例如索尼生产视频和电视

在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类中的属性是static hasMany[categories:Category]。

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

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

这在Grails的和每本书中都有描述,因为它是映射集合的一个非常基本的功能。

当您有
静态hasMany=[categories:Category]
时,这会向您的类添加一个名为
categories
集,并添加一个动态方法
addToCategories
。如果集合为null(对于新实例将是这种情况),它将初始化集合,然后将实例添加到集合中,如果是双向的,则设置back引用。所以最后三行应该是

sony.addToCategories(tv)
sony.addToCategories(video)
sony.addToCategories(laptop)
这在和每本关于Grails的书中都有描述,因为它是映射集合的一个非常基本的特性