【问题标题】:How do you add multiple Objects to an Object Attribute in Groovy? --- In Bootstrap.groovy如何在 Groovy 中为一个对象属性添加多个对象? --- 在 Bootstrap.groovy 中
【发布时间】:2011-08-30 22:15:25
【问题描述】:

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

【问题讨论】:

    标签: grails


    【解决方案1】:

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

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

    这在user guide 和所有关于 Grails 的书中都有描述,因为它是映射集合的一个非常基本的特性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-11
      • 1970-01-01
      • 2018-11-04
      • 1970-01-01
      • 1970-01-01
      • 2021-03-24
      • 1970-01-01
      相关资源
      最近更新 更多