在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]。
答案 0 :(得分:3)
如果您有static hasMany = [categories:Category]
,则会在您的班级中添加一个名为Set
的{{1}},并添加一个动态方法categories
,它可以满足您的需求。它初始化集合,如果它为null(将是新实例的情况),然后将实例添加到Set,如果它是双向的,则设置后向引用。所以最后三行应该是
addToCategories
这是在user guide和Grails的每本书中描述的,因为它是映射集合的一个非常基本的特征。