Учитывая следующие доменные классы Grails GORM и использование наследования таблиц на иерархии:
class Book {
static belongsTo = [ parent: Parent ]
String title
}
abstract class Parent {
static hasMany = [ books: Book ]
}
class A extends Parent {
String asset
}
class B extends Parent {
String asset
}
Скажем, я получил экземпляр класса A из базы данных.Я хочу преобразовать его в экземпляр класса B. Что такое идиоматический способ Grails для этого?
Без отношения hasMany я бы просто удалил A и создал новый B. Но я не хочунакладные расходы, связанные с просмотром большого количества книг и обновлением их полей parent_id, чтобы они указывали на новый B.
В сущности, я просто хочу выполнить SQL UPDATE, чтобы изменить поле базы данных parent.class изОт A до B. Итак, каков рекомендуемый способ сделать это в GORM / Grails?