1. 程式人生 > >Hibernate三種常用對映的優缺點

Hibernate三種常用對映的優缺點

Hibernate三種繼承對映方式的比較 

比較方面

每個具體類一張表

每個分層結構一張表

每個子類一張表

建立關係模型原則

每個具體類對應一張表,有多少具體類就需要建立多少個獨立的表

描述一個繼承關係只用一張表,也就是說子類所使用的表與父類相同

每個子類使用一張表,但這些子類所對應的表都關聯到基類所對應的表中

關係模型的優缺點

這種設計方式符合關係模型的設計原則,但有表中存在重複欄位的問題

缺點有二:首先表中引入的區分子類的欄位,也就是包括了描述其他欄位的欄位。其次,如果某個子類的某個屬性不能為空,那麼在資料庫一級不能設定該欄位not null(非空)

這種設計方式完全符合關係模型的設計原則,且不存在冗餘

可維護性

如果需要對基類進行修改,則需要對基類以及該類的子類所對應的所有表都進行修改

維護起來方便,只需要修改一個表

維護起來比較方便,對每個類的修改只需要修改其所對應的表

靈活性

對映的靈活性很大,子類可以包括基類屬性在內的每一個屬性進行單獨配置

靈活性差,表中冗餘欄位會隨著子類的增多而越來越多

靈活性很好,完全是參照物件繼承的方式進行配置

查詢效能

對於子類的查詢只需要訪問單獨的表,對父類查詢怎需要檢索所有的表

在任何情況下,都只需處理一個表

對於父類的查詢需要使用左外連結,對於子類查詢需要使用內連結

維護效能

對於單個物件持久話操作只需要處理一個表

對於單個物件的持久話操作只需要處理一個表

對於子類的持久話至少要處理兩個表