先分析一下为什么要混合使用. 假如有这样一个情况: tiger有很多专属字段:tiger(animal_id,kind, weigth, body_len, tail_len, body_high),而monkey专属的字段就一个monkey(animal_id, age),如果只采用每个子类一张表, 则对于monkey来说,效率太低,因为为了一个字段却要跨表; 如果只采用一个继承结构一张表, 则对非TIGER的动物来说太浪费空间.所以, 综合来看, 把monkey的age放到父类表animal表中,对Monkey采用每个继承结构一张表; 把tiger的专有字段放在单独一张表中,采用每个子类一张表的映射策略.
基于这样的考虑,我们来做demo,当然我们不必搞那么多字段. 表关系:
animal(id, name, zoo_id, age, animal_type);
tiger(animal_id, kind);
Animal.hbm.xml
Hibernate学习笔记:混合使用每个继承结构一张表 和 每个子类一张表
最新推荐文章于 2021-05-10 11:35:19 发布