[英]Toplink JPA Inheritance - Summary/Detail relationship
我在Web應用程序中使用toplink JPA,我只想將一個表映射到類層次結構。 我想要一個代表大多數數據的類,以及一個從該類繼承的類(這樣它就可以獲取超類的所有字段,再加上另兩個容納大量數據的字段)。 我不想一直有大量的數據,也不想將它們保存在請求對象等中。我只想在有人選擇了其中一個摘要時使用大量的數據。 我將類設置如下(以示例為例)。
@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中映射此摘要/詳細信息關系嗎? 或者,我應該放棄類繼承,而擁有兩個單獨的不相關的類,一個代表摘要數據,一個代表完整數據(並重新定義摘要字段)。
謝謝。
DTYPE是Toplink嘗試訪問的區分列,您可以在實體之間進行選擇。如果將該列添加到表架構中,它將開始工作。
DTYPE是數據庫中INTEGER類型的列。
您可以使用以下代碼段指定自己的區分符列:
@Entity
@DiscriminatorColumn(name="type",discriminatorType=DiscriminatorType.INTEGER)
@DiscriminatorValue("1")
class TestClass {}
這是為您提供的一些文檔http://www.oracle.com/technetwork/middleware/ias/toplink-jpa-annotations-096251.html#CHDJHIAG
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.