Hibernate Table Inherit

来源:互联网 发布:嘉兴南湖行知小学 编辑:程序博客网 时间:2024/05/29 16:15

1、理解如何映射

       这种策略是使用union-subclass标签来定义子类的。每个子类对应一张表,而且这个表的信息是完备的,

       即包含了所有从父类继承下来的属性映射的字段(这就是它跟joined-subclass的不同之处,

       joined-subclass定义的子类的表,只包含子类特有属性映射的字段)。实现这种策略的时候,有如下步骤:

       父类用普通<class>标签定义即可

       子类用<union-subclass>标签定义,在定义union-subclass的时候,需要注意如下几点:

       Union-subclass标签不再需要包含key标签(与joined-subclass不同)

       Union-subclass标签,既可以被class标签所包含(这种包含关系正是表明了类之间的继承关系),

       也可以与class标签平行。 当Union-subclass标签的定义与class标签平行的时候,需要在Union-subclass

       标签中,添加extends属性,里面的值是父类的全路径名称。子类的其它属性,像普通类一样,

       定义在Union-subclass标签的内部。这个时候,虽然在union-subclass里面定义的只有子类的属性,

       但是因为它继承了父类,所以,不需要定义其它的属性,在映射到数据库表的时候,依然包含了父类的所

       有属性的映射字段。

      

注意:在保存对象的时候id是不能重复的(不能使用自增生成主键)      

每个具体类映射成一张表

t_pig

id

name

sex

weight

1

猪猪

true

100

t_bird

id

name

sex

height

2

鸟鸟

false

50

 

session{

       map{

              key=Animal+id

}

}

<class name="Animal" table="t_animal" abstract=”true”>

       <id name="id">

           <generator class="assigned"></generator>

       </id>

       <property name="name"></property>

       <property name="sex"></property>

      

       <union-subclass name="Pig" table="t_pig">

           <property name="weight"></property>

       </union-subclass>

      

       <union-subclass name="Bird" table="t_bird">

           <property name="height"></property>

       </union-subclass>

      

    </class>  
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 摩托车头盔起雾怎么办 真皮沙发太软了怎么办 老师硬让换班怎么办 同事经常要换班怎么办 怀孕在家没钱花怎么办 摩托车车把歪了怎么办 摩旅 手机不防水怎么办 头盔镜片花了怎么办 踏板摩托车速度底怎么办 摩托车头盔小了怎么办 房东和租客纠纷怎么办 租客与房东纠纷怎么办 乙肝打了瘦脸针怎么办 去绣水搞到手上痛怎么办 脚破了皮很痛怎么办 脚被车撞了肿了怎么办 ps4光盘花了怎么办 耳后总是长孑子怎么办 孩孑高三总是玩手机怎么办 摩托车被收了怎么办 摩托车的手续都怎么办 摩托车罚单掉了怎么办 行人遇到黄灯该怎么办 长辈借钱不还怎么办 不绣刚电梯轿壁有凹槽怎么办 电梯下限位故障怎么办 卫生间夏天太热怎么办 07大檐帽变形了怎么办 税务局不批发票怎么办 进项发票太多了怎么办 发票报销联丢失怎么办 发票领用簿没有怎么办 发票购买本遗失怎么办 销售方遗失发票怎么办 增值税发票发票联丢失怎么办 苹果购买发票丢失怎么办 空白增值税发票发票丢失怎么办 网购发票 领购簿怎么办 购物发票丢了怎么办 饭店客人买单要少钱怎么办 发票备注栏写错怎么办