Я пытался удалить более сложный связанный объект из моей БД, поэтому я исследовал с помощью 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, поэтому я поместил его в службу базы данных и запустил приложение. Приложение запускает метод успешно (проверено), но когда он перечитывает коллекцию, он снова появляется. Большая тайна ...!?
Кто-нибудь видел что-нибудь подобное? Или я просто смущающе наивна?
EDIT
Для уточнения:
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 –