hibernate - Grails 2.0 中的 MappedSuperclass 替代方案

标签 hibernate inheritance grails grails-orm

问题与 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/

相关文章:

java - Hibernate 实体类映射不起作用

java - Java 中的继承。面试时提问

java - 如何在 JPA/Hibernate 应用程序中配置连接池(没有 Spring)?

python - 如何在 Python 中初始化类(而不是实例)?

Java Swing : Does the phrase "favor composition over inheritance" apply?

grails - 对grails域约束进行多个条件检查?

vue.js - 无法使用Vue概要文件并行运行Grails 4多项目构建

java - 从 Grails 运行外部 Groovy 脚本时出现 UTF-8 编码错误

java - Hibernate 实体管理器即使在刷新/刷新后也不会删除对象

java - Maven 阴影插件 ClassNotFoundException