Hibernate三種常用映射的優缺點

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

比較方面

每個具體類一張表

每個分層結構一張表

每個子類一張表

建立關係模型原則

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

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

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

關係模型的優缺點

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

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

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

可維護性

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

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

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

靈活性

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

靈活性差,表中冗餘字段會隨着子類的增多而越來越多

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

查詢性能

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

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

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

維護性能

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

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

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

 

 

 

 

 

 

發佈了72 篇原創文章 · 獲贊 6 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章