Java Toplink JPA继承-摘要/详细信息关系

Java Toplink JPA继承-摘要/详细信息关系,java,inheritance,jpa,orm,toplink,Java,Inheritance,Jpa,Orm,Toplink,我在一个webapp中使用toplinkjpa,我只想将一个表映射到一个类层次结构。我希望有一个代表大部分数据的类,以及一个继承自该类的类(因此它获得超类的所有字段,再加上两个包含大量数据的其他字段)。我不希望总是有大量的数据,也不希望将它们保存在请求对象等中。我只希望在有人选择了其中一个摘要时才有大量的数据。我将这些类设置如下(简化为一个示例) 当我尝试使用这个层次结构获取数据时,我会得到一个错误 Unknown column 'DTYPE' 所以它在寻找一个描述符列。我没有设置,因为这不是

我在一个webapp中使用toplinkjpa,我只想将一个表映射到一个类层次结构。我希望有一个代表大部分数据的类,以及一个继承自该类的类(因此它获得超类的所有字段,再加上两个包含大量数据的其他字段)。我不希望总是有大量的数据,也不希望将它们保存在请求对象等中。我只希望在有人选择了其中一个摘要时才有大量的数据。我将这些类设置如下(简化为一个示例)

当我尝试使用这个层次结构获取数据时,我会得到一个错误

Unknown column 'DTYPE'
所以它在寻找一个描述符列。我没有设置,因为这不是那种关系

在JPA中是否有其他方法可以映射此摘要/详细信息关系?或者我应该放弃类继承而使用两个独立的无关类,一个表示摘要数据,另一个表示完整数据(并重新定义摘要字段)


谢谢。

d键入Toplink试图访问的鉴别器列可在您的实体之间进行选择, 如果将该列添加到表架构中,它将开始工作

数据类型是数据库中的整数类型列

您可以使用以下代码段指定自己的鉴别器列:

@Entity
@DiscriminatorColumn(name="type",discriminatorType=DiscriminatorType.INTEGER)
@DiscriminatorValue("1")
class TestClass {}

这里有一些文档供您使用

d键入Toplink试图访问的鉴别器列,以在您的实体之间进行选择, 如果将该列添加到表架构中,它将开始工作

数据类型是数据库中的整数类型列

您可以使用以下代码段指定自己的鉴别器列:

@Entity
@DiscriminatorColumn(name="type",discriminatorType=DiscriminatorType.INTEGER)
@DiscriminatorValue("1")
class TestClass {}

这里有一些文档供您使用

,所以我只需要显示此列,它不需要做任何事情?它将帮助toplink了解数据库表中的哪一行属于类中的哪一个实体。它将包含生成的值,或者您将在@DiscriminatorValue注释中键入的值。它称为鉴别器列,但每一行都与这两个类相关——这些类表示相同的数据项,只是其中的一个子集。这不像表1代表的是普通人,表2代表的是老师,我想要一节课给人,一节课只给老师。就数据库而言,没有什么可区别的。所有的行在这个列中都有相同的值。不,您需要设置@DiscriminatorValue(“教师”)class teacher{}和@DiscriminatorValue(“peaople”)class People People{},所以我只需要显示这个列,它不需要做任何事情?它将帮助toplink了解数据库表中的哪一行属于您的类中的哪个实体。它将包含生成的值,或者您将在@DiscriminatorValue注释中键入的值。它称为鉴别器列,但每一行都与这两个类相关——这些类表示相同的数据项,只是其中的一个子集。这不像表1代表的是普通人,表2代表的是老师,我想要一节课给人,一节课只给老师。就数据库而言,没有什么可区别的。所有行在此列中的值都相同。不,您需要设置@DiscriminatorValue(“教师”)课堂教师{}和@DiscriminatorValue(“peaople”)课堂人员{}