我在这里坚持使用外键约束。不管是什么我指定级联行为或belongsTo/hasMany
,我得到一个外键约束错误Grails级联删除?
我有这样的:
class A{
}
class B{
}
class C extends B {
static belongsTo = [a: A]
}
我想运行A.list()*.delete()
什么我需要做的C
与A
级联删除?
我在这里坚持使用外键约束。不管是什么我指定级联行为或belongsTo/hasMany
,我得到一个外键约束错误Grails级联删除?
我有这样的:
class A{
}
class B{
}
class C extends B {
static belongsTo = [a: A]
}
我想运行A.list()*.delete()
什么我需要做的C
与A
级联删除?
在最新版本的文档中(http://grails.org/doc/latest/guide/5.%20Object%20Relational%20Mapping%20%28GORM%29.html#5.3.3%20Understanding%20Cascading%20Updates% 20和%20Deletes)它显示与这个映射关系为'单向一对一',所以我想你可能会在这里做点什么。 – proflux
这会失败,因为只有C定义了列。如果我将字段移到基类B,我仍然会得到这个错误,无论是使用executeUpdate还是* .delete(); –
它看起来像你需要这个AND 'A.withNewSession {} .findByBlah()*。delete() }'这看起来有点疯狂,但它是唯一可以通过我的外键集成测试,并且我不知道为什么。 –
你能发布外键约束的错误? – Tom
无法执行更新查询:SQL [delete form A where deleted =?] constraint [fk
我的实际删除是一个'executeUpdate',其中'delete from A where condition',因为我正在删除很多记录,并且不能迭代删除。 –