我在一个webapp中使用toplinkjpa,我只想将一个表Map到一个类层次结构。我希望有一个类代表大部分数据,还有一个类继承自该类(因此它获得了超类的所有字段,再加上几个其他的包含大量数据的字段)。我不想一直都有大量的数据,不想把它们保存在请求对象中等等。我只想在有人选择了其中一个摘要时才有大量的数据。我已经设置了如下的类(简化为一个例子)。
@Entity
@Table(name = "TRANSCRIPTS")
@MappedSuperclass //also tried without this - same error
public class Summary {
@Id
@Column(name = "id")
private long id;
@Column(name = "title")
private String title;
//rest of class etc.
}
@Entity
@Table(name = "TRANSCRIPTS")
public class Detail extends Summary {
@Id
@Column(name = "fullText")
private String fullText;
//rest of class etc.
}
当我尝试使用这个层次结构来获取数据时,我得到了一个错误
Unknown column 'DTYPE'
所以它在寻找一个描述符列。我还没有安排,因为这不是那种关系。
有没有其他方法可以在jpa中Map这个摘要/细节关系?或者我应该放弃类继承而使用两个独立的无关类,一个表示摘要数据,另一个表示完整数据(并重新定义摘要字段)。
谢谢。
1条答案
按热度按时间vfwfrxfs1#
数据类型toplink试图访问的鉴别器列可以在实体之间进行选择,如果将该列添加到表架构中,它将开始工作。
数据类型是数据库中的整数类型列。
您可以使用以下代码段指定自己的鉴别器列:
这是给你的一些文件http://www.oracle.com/technetwork/middleware/ias/toplink-jpa-annotations-096251.html#chdjhiag