无法将addTo与多个grails域一起使用

无法将addTo与多个grails域一起使用,grails,gorm,grails-domain-class,Grails,Gorm,Grails Domain Class,我在grails和mysql中有两个表 说A和B 我想在这里实现的场景有: (1) A的实例可以有零个/一个/多个B的实例 (2) 删除实例A时,必须删除其所有相关的B (3) B的每个实例必须仅与A的一个实例关联 (4) A知道B,但B不知道A 条件4不是强制性的 从上面的信息看来:从A到B单向一对多 目前我正在做的是:(接受帮助) 在保存这两个条目时,(B正在保存,但A未保存),我正在使用addTo,并获得方法addToBs()的错误无签名 请帮助我,如果我在什么地方错了,也请纠正我 cla

我在grails和mysql中有两个表

说A和B

我想在这里实现的场景有:

(1) A的实例可以有零个/一个/多个B的实例

(2) 删除实例A时,必须删除其所有相关的B

(3) B的每个实例必须仅与A的一个实例关联

(4) A知道B,但B不知道A

条件4不是强制性的

从上面的信息看来:从A到B单向一对多

目前我正在做的是:(接受帮助)

在保存这两个条目时,(B正在保存,但A未保存),我正在使用addTo,并获得方法addToBs()的错误无签名

请帮助我,如果我在什么地方错了,也请纠正我

class A
{
  String name
  static hasMany=[bs:B] //by default bs are Set. no need of explicit declaration
}

Class B
{
  String name
  static belongsTo = A //when delete a it's b also will get deleted
}

    B b1=new B(name:'bname1')
    B b2=new B(name:'bname11')
    B b3=new B(name:'bname2')
    A a=new A(name:'aname1')
    A a2=new A(name:'aname2')
    a.save(flush:true)
    a2.save(flush:true)
    a.addToBs(b1)
    a.addToBs(b2)
    a2.addToBs(b3)
    a.save(flush:true)
    a2.save(flush:true)

无需保存
b
的实例。当我们将
b
实例添加到
a
上的
b
集合中时,当我们保存
a
的实例时,它将自动保存
b
的实例,如果您没有belongsto关系怎么办?我遇到了一个类似的问题,如果我在将一个添加到hasmany列表后保存它,那么该列表将不会得到更新。我不能有一个belongsto,因为我的类B可以长到两个不同的类,我不希望这两个类以任何方式链接(即:继承)@Randyaa您可以始终使用接口,这两个类都实现了接口,并且它将是这些类的所有者(它们属于此接口的实现).将b添加到a中是否绝对需要进行冲洗?
class A
{
  String name
  static hasMany=[bs:B] //by default bs are Set. no need of explicit declaration
}

Class B
{
  String name
  static belongsTo = A //when delete a it's b also will get deleted
}

    B b1=new B(name:'bname1')
    B b2=new B(name:'bname11')
    B b3=new B(name:'bname2')
    A a=new A(name:'aname1')
    A a2=new A(name:'aname2')
    a.save(flush:true)
    a2.save(flush:true)
    a.addToBs(b1)
    a.addToBs(b2)
    a2.addToBs(b3)
    a.save(flush:true)
    a2.save(flush:true)