如何在hasMany元素中添加对象

时间:2013-12-14 09:09:11

标签: grails

我有两个域类

class Company{
String name
....
static hasMany[product:product]
}

class  Product{
String Pname
String Qty

}

我想添加这样的产品

Company comp= Company.get(1) 
Product pdct = Product.findByPname("procut1");///procunt name is unique
comp.product.add(pdct)
comp.save(flush:true)

上述声明已成功执行 但是当我试图找到comp.product时,我得到了一个像[]

这样的空列表

我也尝试添加add,但这会产生异常 那么我错过了什么?

2 个答案:

答案 0 :(得分:2)

添加和删除馆藏成员时,您应该使用addToremoveFrom的GORM方法。

comp.product.add(pdct)

应该是:

comp.addToProduct(pdct)

答案 1 :(得分:1)

将其更改为static hasMany[products:Product]

 Company comp= Company.get(1) 
 Product pdct = Product.findByPname("procut1");///procunt name is unique
 comp.addToProducts(pdct)
 comp.save(flush:true)

同时在static belongsTo = [company:Company]课程中添加Product以应用Cascade操作