Grails 2.0中的MappedSuperclass替代品

ver*_*lor 5 grails inheritance hibernate grails-orm

问题与旧的SO问题相同,但解决方案不再适用于Grails 2.0 - 抽象域类不作为@MappedSuperclass处理,而是始终保存在它自己的表中.如果我将它移到grails-app/domain之外,它根本不起作用.

那么有没有办法让一个抽象的超类(甚至更好的混合)表现得像@MappedSuperclass(没有创建自己的表,共享id和公共字段)?

小智 4

我们遇到了同样的问题,并用 grails 2.2.1(不是 grails 2.0)解决了这个问题:

在 src/groovy 下创建抽象超类:

abstract class Auditable {
  Date dateCreated
  Date lastUpdated

  static constraints = {
    dateCreated(display:false)
    lastUpdated(display:false)
  }
}
Run Code Online (Sandbox Code Playgroud)

在 grails-app/domain 下创建了具体类“Parcel”:

class Parcel extends Auditable {
  ...
}
Run Code Online (Sandbox Code Playgroud)

您应该使用 Grails 2.1 或最新版本的 Grails 2.2.3 而不是 2.0.x 来解决这种映射。