如何在Groovy中向Object属性添加多个对象? ---在Bootstrap.groovy

时间:2011-08-30 22:15:25

标签: grails

在Grails中制作一个简单的采购订单应用程序,我有类别(例如:电视,视频...),品牌和项目。品牌是关联(hasMany)类别,例如索尼制作视频和电视。

在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]。

1 个答案:

答案 0 :(得分:3)

如果您有static hasMany = [categories:Category],则会在您的班级中添加一个名为Set的{​​{1}},并添加一个动态方法categories,它可以满足您的需求。它初始化集合,如果它为null(将是新实例的情况),然后将实例添加到Set,如果它是双向的,则设置后向引用。所以最后三行应该是

addToCategories

这是在user guide和Grails的每本书中描述的,因为它是映射集合的一个非常基本的特征。