0
Grails領域級
我有以下的類()函數:改寫刪除
class User {
String name
}
class Book {
User user
}
我想,如果我刪除一個用戶對象時,它也刪除包含用戶實例Book對象。由於我沒有從User類到書級的關係級聯刪除不起作用。
我寫的書類如:
class Book {
belongsTo = [user: User]
}
前者還沒有做級聯刪除,因爲還沒有在User類中定義的關係。
我所做的是以下幾點:
class User {
String name
def deleteUser() {
def books = Book.findAllByUser(this)
books.each { it.delete(flush: true) }
}
delete(flush: true)
}
我不認爲這是最好的解決辦法。我能做些什麼呢?有沒有辦法以某種方式擴展User類的delete()函數?
我嘗試了以下,但它失敗。
def delete() {
def books = Book.findAllByUser(this)
books.each { it.delete(flush: true) }
}
super.delete(flush: true)
你會使用delete(flush:true)還是不使用flush?你爲什麼不把這種方法放在模型中? – confile
我在交易中處理時通常不使用刷新。特別是當多個域被操縱時。我沒有把它放在模型中,因爲我想要事務控制,並且我不是模型中那種業務邏輯的忠實粉絲。 – Gregg
事務控制意味着一切都發生在一個事務中?這在模型中是不可能的嗎? – confile