Grails有许多删除行为

Grails有许多删除行为,grails,gorm,cascade,Grails,Gorm,Cascade,我有2个域类 class A { static hasMany = [ b : B ] } class B { static belongsTo = A } 我希望保留级联保存,因此当我保存A时,它会更新B,但当我删除A时,如果存在与A关联的任何B,我希望它会失败。因此,您必须先显式删除所有B 我不确定在Grails中实现这一点的最简单方法。我可以在删除a之前在a中打个勾,以确认没有B,这很简单。但是有没有一种方法可以通过级联或关系行为来控制这一点,这样我就不必将逻辑放在其中?指

我有2个域类

class A {
   static hasMany = [ b : B ]
}

class B {
   static belongsTo = A
}
我希望保留级联保存,因此当我保存A时,它会更新B,但当我删除A时,如果存在与A关联的任何B,我希望它会失败。因此,您必须先显式删除所有B


我不确定在Grails中实现这一点的最简单方法。我可以在删除a之前在a中打个勾,以确认没有B,这很简单。但是有没有一种方法可以通过级联或关系行为来控制这一点,这样我就不必将逻辑放在其中?

指定集合的级联行为

class A {
   static hasMany = [ b : B ]

   static mapping = {
        b cascade: 'save-update'
    }
}

它将级联保存和更新,但不会删除。

我想问题在这里得到了回答:彼得·莱德布鲁克我已经读过了,但我不确定它是否回答了这个问题(这是一篇很长的文章,所以我可能错过了它)。目前尚不清楚如何禁用级联删除,但仍然保持双向关联<在我的例子中,如果没有
A
,code>B就无法存在,但是如果用户试图删除
A
而没有首先删除
B
s,我希望失败-我不想自动删除
B
sah lads-命名!。为什么要使用A和B,而你可以使用Dog和Leg?如果我尝试删除A,这将失败,并带有外键约束,对吗?是的,尝试它,它不会让你删除