aka*_*rma 4 grails grails-orm grails-domain-class
我有两个带有mysql的grails表
说A和B.
我想在这里实现的场景是:
(1)A的实例可以有零个/一个/多个B实例.
(2)当删除实例A时,必须删除其所有相关的B.
(3)B的每个实例必须只与A的一个实例相关联.
(4)A知道B,但B不知道A.
条件号4不是强制性的.
从上面的信息看起来像:从A到B的单向一对多
目前我在做的是:(从这里获得帮助)
class A
{
String name
Set bs=[]
static hasMany=[bs:B]
}
Class B
{
String name
}
B b=new B(name:'bname')
b.save()
A a=new A(name:'aname')
a.addToBs(b)
a.save()
Run Code Online (Sandbox Code Playgroud)
保存两个条目时,(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)
Run Code Online (Sandbox Code Playgroud)
无需保存实例b.当我们将b实例添加到b'son 的集合中时a,它会自动保存b我们保存实例时的实例a.
| 归档时间: |
|
| 查看次数: |
4315 次 |
| 最近记录: |