3
類
我有一個看起來像GORM抽象域
abstract class A {
static hasMany = [ b : B ]
static mapping = {
tablePerHierarchy false
}
}
class AChild extends A {
}
abstract class B {
static belongsTo = A
static mapping = {
tablePerHierarchy false
}
}
class BChild extends B {
}
2個抽象Grails領域類的,我有一些代碼,不會
A a = new AChild()
a.b << new BChild()
a.save(flush:true)
可正常工作
現在,當我嘗試要做
b.delete(flush:true)
這個失敗因爲在A/B之間創建的連接表中存在參照完整性違規。它看起來像GORM作爲刪除的一部分的第一個查詢是從B
表中刪除而不是連接表,並且該連接有一個引用返回到B
表的引用違反。
delete from b where id=? and version=?
我想保持A
和B
域中文件夾的原因是這樣我就可以做這樣的事情A.list()
,所以移動它出來src/groovy
就只能是最後的選擇。
不錯的問題,如果A不抽象會不會b.delete()成功? – dsharew 2015-04-02 06:20:43
我還沒有嘗試所有的抽象/非抽象的組合,看看有什麼作品。但是我的代碼中有其他關係可以正常工作,所以我認爲這是一個抽象問題。無論如何,我已經向Grails團隊彙報過了。 – 2015-04-02 13:40:43