给定以下 Grails GORM 域类并使用 table-per-hierarchy 继承:
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。但我不希望通过大量 Books 并更新它们的 parent_id 字段以指向新 B 的开销。
在后台,我基本上只是想执行 SQL UPDATE 以将数据库字段 parent.class 从 A 更改为 B。那么在 GORM/Grails 中推荐的方法是什么?