我試圖從我的數據庫中刪除一個更復雜的相關對象,於是我研究了使用Grails控制檯以及與此想出了:Grails的刪除並不持久
TextContent textContent = ...The item to delete...
// TextContent hasMany BundleText
// BundleText belongsTo BundleVersion
textContent.bundleTexts.each {
BundleVersion bundleVersion = it.bundleVersion
bundleVersion.removeFromBundleTexts(it)
textContent.removeFromBundleTexts(it)
it.delete()
//bundleVersion.save()
}
// Language hasMany TextContent
// Language belongsTo textContent (?)
textContent.language.removeFromTextContents(textContent)
// TextContent belongsTo textCode
TextCode textCode = textContent.textCode
textCode.removeFromTextContents(textContent)
textContent.delete()
//textCode.save()
現在,這一切工作正常在Grails的控制檯,所以我把它放在我的數據庫服務中,然後運行應用程序。 該應用程序運行該方法成功(驗證),但是當它重新讀取集合它再次出現.. 大神祕......!?
任何人都看過類似的東西嗎?還是我只是尷尬地天真?
編輯
對於澄清:
class TextCode {
static hasMany = [ textContents : TextContent ]
}
class TextContent {
Language language
static belongsTo = [ textCode : TextCode ]
static hasMany = [ bundleTexts : BundleText]
}
class BundleText {
TextContent textContent
static belongsTo = [ bundleVersion : BundleVersion ]
}
class Language {
static hasMany = [ textContents : TextContent ]
}
顯示您的域的代碼TextCode,TextContent和BundleVersion –