91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Hibernate繼承關系樹的映射方式是什么

發布時間:2021-12-04 16:29:28 來源:億速云 閱讀:104 作者:iii 欄目:編程語言

這篇文章主要介紹“Hibernate繼承關系樹的映射方式是什么”,在日常操作中,相信很多人在Hibernate繼承關系樹的映射方式是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Hibernate繼承關系樹的映射方式是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

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

在面向對象的范疇中,還存在多態的概念,多態建立在繼承關系的基礎上。簡單地理解,多態是指當一個Java應用變量被聲明為Employee類時,這個變量實際上既可以引用HourlyEmployee類的實例,也可以引用SalariedEmployee類的實例。以下這段程序代碼就體現了多態:

List employees= businessService.findAllEmployees();  Iterator it=employees.iterator();  while(it.hasNext()){  Employee e=(Employee)it.next();  if(e instanceof HourlyEmployee){  System.out.println(e.getName()+" "+((HourlyEmployee)e).getRate());  }else  System.out.println(e.getName()+" "+((SalariedEmployee)e).getSalary());  }

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

此外,從Company類到Employee類為多態關聯,因為Company類的employees集合中可以包含 HourlyEmployee類和SalariedEmployee類的實例。從Employee類到Company類不是多態關聯,因為 Employee類的company屬性只會引用Company類本身的實例。數據庫表之間并不存在繼承關系,那么如何把域模型的繼承關系映射到關系數據模型中呢?

◆Hibernate繼承關系樹的每個具體類對應一個表:關系數據模型完全不支持域模型中的繼承關系和多態。

◆Hibernate繼承關系樹的根類對應一個表:對關系數據模型進行非常規設計,在數據庫表中加入額外的區分子類型的字段。通過這種方式,可以使關系數據模型支持繼承關系和多態。

◆Hibernate繼承關系樹的每個類對應一個表:在關系數據模型中用外鍵參照關系來表示繼承關系。

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

到此,關于“Hibernate繼承關系樹的映射方式是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

台前县| 安塞县| 寿光市| 鹤峰县| 东乌珠穆沁旗| 巩留县| 毕节市| 怀安县| 玉门市| 邵武市| 宣武区| 呼玛县| 光山县| 兴业县| 博客| 图们市| 竹山县| 黎平县| 朝阳市| 绥宁县| 监利县| 孙吴县| 余干县| 柘荣县| 锦州市| 扎鲁特旗| 宁武县| 灵石县| 乌兰县| 峨眉山市| 洛阳市| 安吉县| 洛浦县| 青阳县| 怀来县| 渝北区| 奉贤区| 固原市| 磐石市| 修文县| 历史|