У меня есть следующие классы:
class User {
String name
}
class Book {
User user
}
Я хочу, чтобы при удалении объекта «Пользователь» также удалялся объект «Книга», содержащий экземпляр пользователя. Так как я не имею отношения от класса User к классу книги, то каскадное удаление не пройдет.
Я могу написать класс 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?
Я пробовал следующее, но это не удалось.
def delete() {
def books = Book.findAllByUser(this)
books.each { it.delete(flush: true) }
}
super.delete(flush: true)