我试图从我的数据库中删除一个更复杂的相关对象,于是我研究了使用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 –