成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺析Hibernate繼承關(guān)系樹(shù)的三種映射方式

開(kāi)發(fā) 后端
這里介紹Hibernate繼承關(guān)系樹(shù)的根類對(duì)應(yīng)一個(gè)表:對(duì)關(guān)系數(shù)據(jù)模型進(jìn)行非常規(guī)設(shè)計(jì),在數(shù)據(jù)庫(kù)表中加入額外的區(qū)分子類型的字段。

在向大家詳細(xì)介紹Hibernate繼承關(guān)系樹(shù)的三種映射方式之前,首先讓大家了解下Employee類為抽象類,然后全面介紹。

在域模型中,類與類之間除了關(guān)聯(lián)關(guān)系和聚集關(guān)系,還可以存在繼承關(guān)系,Company類和Employee類之間為一對(duì)多的雙向關(guān)聯(lián)關(guān)系(假定不允許雇員同時(shí)在多個(gè)公司兼職),Employee類為抽象類,因此它不能被實(shí)例化,它有兩個(gè)具體的子類:HourlyEmployee類和SalariedEmployee類。由于Java只允許一個(gè)類最多有一個(gè)直接的父類,因此Employee類、HourlyEmployee類和SalariedEmployee類構(gòu)成了一棵繼承關(guān)系樹(shù)。

在面向?qū)ο蟮姆懂犞校€存在多態(tài)的概念,多態(tài)建立在繼承關(guān)系的基礎(chǔ)上。簡(jiǎn)單地理解,多態(tài)是指當(dāng)一個(gè)Java應(yīng)用變量被聲明為Employee類時(shí),這個(gè)變量實(shí)際上既可以引用HourlyEmployee類的實(shí)例,也可以引用SalariedEmployee類的實(shí)例。以下這段程序代碼就體現(xiàn)了多態(tài):

  1. List employeesbusinessService.findAllEmployees();  
  2. Iterator it=employees.iterator();  
  3. while(it.hasNext()){  
  4. Employee e=(Employee)it.next();  
  5. if(e instanceof HourlyEmployee){  
  6. System.out.println(e.getName()+" "+((HourlyEmployee)e).getRate());  
  7. }else  
  8. System.out.println(e.getName()+" "+((SalariedEmployee)e).getSalary());  
  9. }  

BusinessService類的findAllEmployees()方法通過(guò)Hibernate API從數(shù)據(jù)庫(kù)中檢索出所有Employee對(duì)象。findAllEmployees()方法返回的集合既包含HourlyEmployee類的實(shí)例,也包含SalariedEmployee類的實(shí)例,這種查詢被稱為多態(tài)查詢。以上程序中變量e被聲明為Employee類型,它實(shí)際上既可能引用 HourlyEmployee類的實(shí)例,也可能引用SalariedEmployee類的實(shí)例。

此外,從Company類到Employee類為多態(tài)關(guān)聯(lián),因?yàn)镃ompany類的employees集合中可以包含 HourlyEmployee類和SalariedEmployee類的實(shí)例。從Employee類到Company類不是多態(tài)關(guān)聯(lián),因?yàn)?Employee類的company屬性只會(huì)引用Company類本身的實(shí)例。數(shù)據(jù)庫(kù)表之間并不存在繼承關(guān)系,那么如何把域模型的繼承關(guān)系映射到關(guān)系數(shù)據(jù)模型中呢?

◆Hibernate繼承關(guān)系樹(shù)的每個(gè)具體類對(duì)應(yīng)一個(gè)表:關(guān)系數(shù)據(jù)模型完全不支持域模型中的繼承關(guān)系和多態(tài)。

◆Hibernate繼承關(guān)系樹(shù)的根類對(duì)應(yīng)一個(gè)表:對(duì)關(guān)系數(shù)據(jù)模型進(jìn)行非常規(guī)設(shè)計(jì),在數(shù)據(jù)庫(kù)表中加入額外的區(qū)分子類型的字段。通過(guò)這種方式,可以使關(guān)系數(shù)據(jù)模型支持繼承關(guān)系和多態(tài)。

◆Hibernate繼承關(guān)系樹(shù)的每個(gè)類對(duì)應(yīng)一個(gè)表:在關(guān)系數(shù)據(jù)模型中用外鍵參照關(guān)系來(lái)表示繼承關(guān)系。

提示:具體類是指非抽象的類,具體類可以被實(shí)例化。HourlyEmployee類和SalariedEmployee類就是具體類。

以上每種映射方式都有利有弊,本章只介紹Hibernate繼承關(guān)系樹(shù)的三種映射方式。

【編輯推薦】

  1. 簡(jiǎn)單描述Hibernate單元測(cè)試
  2. 概括Hibernate多表關(guān)聯(lián)查詢
  3. 淺談Hibernate Session Factory
  4. 淺析Hibernate加載配置文件
  5. 深入剖析Hibernate核心接口
責(zé)任編輯:佚名 來(lái)源: 公安部
相關(guān)推薦

2025-01-13 00:00:00

MapStruct繼承關(guān)系Java

2009-09-23 13:26:10

Hibernate對(duì)象

2011-04-08 11:13:50

CISCO IOS令牌桶雙桶

2012-02-02 16:13:29

HibernateJava

2012-03-18 21:10:07

2012-03-21 17:18:41

2009-07-02 09:40:14

Hibernate的繼

2012-05-30 15:03:43

ibmdw

2009-09-24 11:17:32

Hibernate查詢

2009-09-25 15:58:04

Hibernate對(duì)象

2009-09-22 14:12:16

Hibernate S

2009-06-16 14:36:54

Hibernate繼承

2009-06-23 10:45:18

Hibernate支持

2012-07-17 09:16:16

SpringSSH

2009-09-25 14:20:28

Hibernate繼承映射

2011-03-10 14:19:56

JavaScript

2021-11-05 21:33:28

Redis數(shù)據(jù)高并發(fā)

2019-11-20 18:52:24

物聯(lián)網(wǎng)智能照明智能恒溫器

2014-12-31 17:42:47

LBSAndroid地圖

2021-06-24 08:52:19

單點(diǎn)登錄代碼前端
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 91精品国产日韩91久久久久久 | 欧美福利 | 成人影院网站ww555久久精品 | 久久久av| 一区二区三区视频播放 | 亚洲一区二区三区四区五区中文 | 99re国产视频 | 波多野结衣在线观看一区二区三区 | 毛片视频网站 | 久久天堂| 国产精品99久久久久久动医院 | 亚洲视频免费观看 | 国产一区不卡在线观看 | 老司机狠狠爱 | 操久久| 国产在线高清 | 国产精品一区二区在线观看 | 国产精品久久精品 | 精品国产精品国产偷麻豆 | 国产高清视频 | 成人在线观看免费 | 亚洲xxxxx | 欧美日韩综合一区 | 91精品一区 | 国产精品小视频在线观看 | 国产aⅴ精品 | 天堂一区二区三区 | 男人天堂手机在线视频 | 欧美日韩不卡 | 中文字幕综合 | 中文字幕成人免费视频 | 国产精品福利在线 | av一区二区三区四区 | 欧美成人h版在线观看 | 国产精品精品视频一区二区三区 | 日韩av一区二区在线 | 九九国产在线观看 | 日韩中文字幕一区 | 成人亚洲在线 | 日本爱爱| 亚洲顶级毛片 |