GORM 多态性中的摘要 class

abstract class in GORM polymorphism

我正在做一个 Grails 项目,Grails 版本:2.2.0。 我有这些 classes :

public abstract class A {}
public class B extends A {}
public class C extends A {}

目前,一切正常 class A 在:src/groovy 所以在数据库中我有两个表 B 和 C。 现在我添加一个新的 class :

public class D{
A aa
}

现在不再有效,因为休眠不识别类型 A。 一种解决方案是省略抽象术语,但允许实例化 A 对象,这是不正确的! 有没有人知道如何解决这个问题? 谢谢

问题是这样的:GORM/Hibernate 必须 能够实例化域 class 属性(当然除了临时属性)。因此,属性 不能是抽象类型。出于同样的原因,接口不起作用。

要保持​​继承,不幸的是你必须这样做不太正确:放弃抽象并使A 一个域 class.