AR 不同 繼承對映的問題總結

2022-01-18 10:28:40 字數 384 閱讀 9761

在使用ar(nhibernate) 做orm時,使用類的繼承體系時,它有不同的對映方式,解決的問題不同,帶來的問題差異也很大。

1、所有資料 儲存在一張表,不同的類使用 discriminatorcolumn

來區分,這樣的方式好處是:只有一張表,在不同類的屬性差異很少時,非常方便實用,查詢效率也高。

2、不同的類 各自使用自己的表,但基類資料儲存在 基類表,子類有子類的表,這樣的方式好處是:結構清晰,**與結構一一對應,id 號是 統一管理 遞增的,缺點是 查詢效率低,查詢時需要把所有相關表做連線查詢。

3、不同的類 各自獨立使用自己的表,基類只是**共享, 這樣的好處是:結構清晰,一類一表,查詢效率高,只查詢一張表,缺點是 各表有自己的id號,比如a類有#1的物件,b類也有#1的物件。

Hibernate的繼承對映

關係模型如下 對映檔案如下 package com.nnngu name animal table t animal lazy false name id class native id column type type string name name name name pig discrimi...

Hibernate的繼承對映

關係模型如下 對映檔案如下 說明 因為類繼承樹肯定是對應多個類,要把多個類的資訊存放在一張表中,必須有某種機制來區分哪些記錄是屬於哪個類的。這種機制就是,在表中新增乙個字段,用這個欄位的值來進行區分。用hibernate實現這種策略的時候,有如下步驟 1 父類用普通的標籤定義 2 在父類中定義乙個d...

Hibernate的繼承對映

何為繼承對映 繼承對映 對於物件導向的程式語言而言,繼承和多型是兩個最基本的概念。hibernate 的繼承對映可以理解持久化類之間的繼承關係。例如 人和學生之間的關係。學生繼承了人,可以認為學生是乙個特殊的人,如果對人進行查詢,學生的例項也將被得到。繼承對映的分類 hibernate支援三種繼承對...