Hibernate 继承映射笔记
?? ? ? Hibernate 的继承映射体系提供了一个OO方式的建模方法,有时为了解决复杂的对象关系,用继承映射可以以OO的方式优雅的设计表,操作POJO,为了不混乱,在使用时清晰的选择表关联方式,特做笔记。
?? ? ?方式1: 对一个继承体系,只用一个表保存数据
?? ? ?说明 : 这种方式下,POJO仍然用继承的方式表述,但数据库里只用一个表来保存所有继承体系中的表数据
?? ? ?hibernate 用一个鉴别器字段来区分数据属于那个POJO,每个POJO的鉴别器值在该体系中应该是唯一的,你在每个子类中生命子类的属性,在父类中声明的公用字段,而所有子类中的持久化属性都将作为这个表的一个列.
?
?
?
?
?方式2:?连接子类策略
?说明:父子类之间不需要鉴别器类识别,父类申明的属性放在父类表中,子类的属性放在子类表中,当查询子类时用内连接的方法取出父类和子类属性,生成子类的POJO?这种情况下,各自保存各自的属性.父子类之间关联通过外键关系类维持?父类:
??
?方法3:每个具体类一张表
?说明:这种情况下,每个具体类映射一张表,而每个表保存这个类的所有持久化属性,当然这时也包括从父类继承过来的属 ?性,其实诚如官方所言,和单独映射每个类都一样,可是如果你为了使用对象见的OO多态属性可以这么映射
?
@Entity @Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)public class Flight implements Serializable { ... }??