私は次のクラスを持っています:
class User {
String name
}
class Book {
User user
}
User オブジェクトを削除すると、ユーザー インスタンスを含む Book オブジェクトも削除されます。User クラスから book クラスへの関係がないため、カスケード削除は機能しません。
Book クラスは次のように記述できます。
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)