
本着应用的目的快速学习Hibernate4框架
- Hibernate映射继承
前面的话
本节主要介绍:
本文主要讲解Hibernate4的映射继承,主要包括如下:
- 每个子类对应一个表
- 只有一个基类对应一个表
- 每个类对应一个表
Type1:每个子类对应一个表
Demo:建立一个抽象类Picture,并由两个子类LifePic和WorkPic继承该类,每个员工Staff有多个Picture。
Type1.mgc
类图关系如下:
Picture.java
1 | package cn.codeforgod.model; |
LifePic.java
1 | package cn.codeforgod.model; |
WorkPic.java
1 | package cn.codeforgod.model; |
Staff.java
1 | package cn.codeforgod.model; |
LifePic.hbm.xml
1 | <?xml version="1.0"?> |
WorkPic.hbm.xml
1 | <?xml version="1.0"?> |
Staff.hbm.xml
1 | <?xml version="1.0"?> |
Hibernate.cfg.xml
1 | <?xml version='1.0' encoding='utf-8'?> |
Test.java
1 | package cn.codeforgod.test; |
数据库中表的关系如下图:

Type2:基类对应一个表
Demo:建立一个具体类Picture,并由两个子类LifePic和WorkPic继承该类,每个员工Staff有多个Picture。
Type2.mgc
类图关系如下:
Picture2.java
1 | package cn.codeforgod.model; |
LifePic2.java
1 | package cn.codeforgod.model; |
WorkPic2.java
1 | package cn.codeforgod.model; |
Staff2.java
1 | package cn.codeforgod.model; |
Picture2.hbm.xml
1 | <?xml version="1.0"?> |
Staff2.hbm.xml
1 | <?xml version="1.0"?> |
数据库中表的关系如下图:

Type3:每个类对应一个表
Demo:建立一个具体类Picture,并由两个子类LifePic和WorkPic继承该类,每个员工Staff有多个Picture。
Type3.mgc
类图关系如下:
Picture3.java
1 | package cn.codeforgod.model; |
LifePic3.java
1 | package cn.codeforgod.model; |
WorkPic3.java
1 | package cn.codeforgod.model; |
Staff3.java
1 | package cn.codeforgod.model; |
Picture3.hbm.xml
1 | <?xml version="1.0"?> |
Staff3.hbm.xml
1 | <?xml version="1.0"?> |
数据库中表的关系如下图:

Tips
在映射文件中,不能有cascade属性。
然后本文好似有点难以理解,但是这是Hibernate给我们的思想,值得深思。愿你我都能写出漂亮的代码,让中国的IT也可以让世界瞩目(虽然这几乎不可能实现)。