在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]
时,这会将一个名为Set
的categories
添加到您的类中,并添加一个可以满足您需要的动态方法addToCategories
。如果集合为空,它将初始化集合(新实例将是这种情况),然后将实例添加到集合中;如果是双向的,它将设置反向引用。所以最后三行应该是
sony.addToCategories(tv)
sony.addToCategories(video)
sony.addToCategories(laptop)
这是user guide和每本有关Grails的书中所描述的,因为它是映射集合的非常基本的功能。
关于grails - 如何在Groovy中将多个对象添加到对象属性? —在Bootstrap.groovy中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7250443/