簡體   English   中英

Toplink JPA繼承-摘要/詳細信息關系

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM