作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
给定以下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
}
最佳答案
在Grails或Hibernate中没有对此的支持,因为这类似于将A的实例更改为B内存中的对象,但是对象具有固定的类型并且不能更改。没有直接访问需要更改其值的鉴别符列的权限。
因此,执行此操作的方法是通过您所说的SQL更新。有几种选择,但最好的选择可能是groovy.sql.Sql
,例如
import groovy.sql.Sql
class FooService {
def dataSource
void convertToB(A a) {
def sql = new Sql(dataSource)
sql.executeUpdate('update parent set class=? where id=?', [B.name, a.id])
}
}
关于inheritance - 如何在Grails/GORM中将域类模型对象从一个派生类更改为另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5725362/
我是一名优秀的程序员,十分优秀!