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

淺析Hibernate繼承關系樹的三種映射方式

開發 后端
這里介紹Hibernate繼承關系樹的根類對應一個表:對關系數據模型進行非常規設計,在數據庫表中加入額外的區分子類型的字段。

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

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

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

  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()方法通過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繼承關系樹的三種映射方式。

【編輯推薦】

  1. 簡單描述Hibernate單元測試
  2. 概括Hibernate多表關聯查詢
  3. 淺談Hibernate Session Factory
  4. 淺析Hibernate加載配置文件
  5. 深入剖析Hibernate核心接口
責任編輯:佚名 來源: 公安部
相關推薦

2025-01-13 00:00:00

MapStruct繼承關系Java

2009-09-23 13:26:10

Hibernate對象

2011-04-08 11:13:50

CISCO IOS令牌桶雙桶

2012-02-02 16:13:29

HibernateJava

2012-03-21 17:18:41

2012-03-18 21:10:07

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對象

2009-06-16 14:36:54

Hibernate繼承

2009-09-22 14:12:16

Hibernate S

2009-09-25 14:20:28

Hibernate繼承映射

2012-07-17 09:16:16

SpringSSH

2009-06-23 10:45:18

Hibernate支持

2011-03-10 14:19:56

JavaScript

2009-09-25 12:59:52

Hibernate映射

2009-06-17 14:55:26

Hibernate數據

2009-06-29 18:21:29

Hibernate

2020-11-01 17:10:46

異步事件開發前端
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久一级| 国产在线一区二 | 成人在线视频观看 | 人人干人人干人人干 | 久久综合一区二区三区 | 午夜小视频在线播放 | 日韩a v在线免费观看 | 韩日视频在线观看 | 免费精品视频在线观看 | 伊人网综合在线 | 男女羞羞视频在线观看 | 国产亚洲黄色片 | 国产精品久久久久久一区二区三区 | 亚洲精品成人av | 久久久久久一区 | 最近中文字幕免费 | 久久99国产精一区二区三区 | 国产三级大片 | av资源网站 | 成人国产精品久久久 | 精品中文字幕一区二区三区 | 久久99精品视频 | 免费观看成人鲁鲁鲁鲁鲁视频 | 美女国内精品自产拍在线播放 | 久久久久国产一区二区三区四区 | 久草在线影 | 久久夜视频 | 成人免费淫片aa视频免费 | 久久一 | 中文字幕一区二区三区乱码图片 | 亚洲欧美日韩电影 | 91社区在线观看播放 | 一区二区三区四区免费视频 | 欧美激情免费在线 | 影音先锋亚洲资源 | 黄色网毛片 | 欧美激情在线播放 | 青草视频在线 | 久久久久成人精品亚洲国产 | 国产精品久久久久久久久久 | 欧美日韩专区 |