问题与 older SO question 中的相同。但该解决方案对 Grails 2.0 不再有效 - 抽象域类不作为 @MappedSuperclass 处理,而是始终保存在它自己的表中。如果我将它移到 grails-app/domain 之外,它根本不起作用。
那么有没有办法拥有一个抽象父类(super class)(甚至更好的混入),它的行为类似于@MappedSuperclass(无需创建自己的具有共享 id 和公共(public)字段的表)?
最佳答案
我们遇到了同样的问题,并以这种方式用 grails 2.2.1(不是 grails 2.0)解决了它:
在 src/groovy 下创建了抽象父类(super class):
abstract class Auditable {
Date dateCreated
Date lastUpdated
static constraints = {
dateCreated(display:false)
lastUpdated(display:false)
}
}
在 grails-app/domain 下创建了具体类“Parcel”:
class Parcel extends Auditable {
...
}
您应该使用 Grails 2.1 或最新版本的 Grails 2.2.3 而不是 2.0.x 来解决这种映射。
关于hibernate - Grails 2.0 中的 MappedSuperclass 替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9717127/