继承-----单表继承---每棵类继承树使用一个表
来源:互联网 发布:喜马拉雅听书 mac 编辑:程序博客网 时间:2024/06/06 17:05
1.单表继承:即每棵类继承树使用一个表。
(1)类继承树对应多个类,多个类的信息存储于一张表中,那么如何区分某条记录属于哪个类?
采用的机制是在表中添加一个字段,用字段的值来进行区分。
(2)配置文件如下:
<hibernate-mapping package="包名"><class name="父类名称" table="对应的表名"><id name="id"><generator class="native"></generator></id><discriminator column="新增加的字段名称" type="对应的类型"></discriminator><property name="父类属性"></property>...........<subclass name="子类名称" discriminator-value="该子类对应的鉴别值"><property name="子类的属性"></property></subclass><subclass name="子类名称" discriminator-value="该子类对应的鉴别值"><property name="子类的属性"></property></subclass></class><!-- 这种方法繁琐,所以采用上面的配置<subclass name="子类名称" extends="父类名称"></subclass> --></hibernate-mapping>
说明如下:
A:父类采用<class>标签定义
B:在父类中定义一个discriminator,即指定用于区分字段的名称和类型
<discriminator column="区分字段名称" type="类型"></discriminator>
C:子类使用<subclass>标签,name属性指明子类的路径,discriminator-value属性指定用于区分该类字段的值。
子类的属性也是用<property>加以标识。
D:<subclass>与<class>可以平行,但需要指定继承的名称,较繁琐,所以使用<class>包含<subclass>的形式。
另外:
多态查询:即在hibernate加载数据的时候能够鉴别出真正的类型。
(1)get方式支持多态查询,因为get不支持lazy策略,所以不生成代理类。
(2)load默认情况下是支持lazy的,所以不支持多态查询,当lazy设置为false时,才支持多态查询。
(3)HQL支持多态查询。
- 继承-----单表继承---每棵类继承树使用一个表
- 009——hibernate单表继承:每棵类继承树使用一个表
- 继承映射之每棵类继承树一张表
- Hibernate 继承类 每棵树 集成的表
- 【SSH快速进阶】——Hibernate继承映射:每棵继承树映射一张表
- Hibernate继承映射之每颗类继承树一张表
- 每棵继承树映射成一张表
- 2.每颗类继承树一张表:工具类
- 1.每颗类继承树一张表:Object,hbm
- 4.每颗类继承树一张表:测试
- 5.每颗类继承树一张表:总结
- HIbernate 单表继承
- 实体单表继承
- 继承映射(单表)
- rails 单表继承
- rails 单表继承
- 继承、父子类、单继承、多继承
- Hibernate 继承类 每棵树 具体的独立的表
- 深入Tomcat学习之server.xml详解
- java 反射机制
- 编程高手是怎样炼成的(转我老大 刘总的文章)
- Linux Programmer's Manual DUP(2)
- 你理解老板的想法吗?
- 继承-----单表继承---每棵类继承树使用一个表
- 2 -- sat 整理
- 示波器的使用
- C语言中volatile是什么意思
- HashMap 浅析
- IE8 上传文件出现C:\fakepath\错误
- Spring学习之初的一点Problem。。。
- 职场沟通常用的黄金8句,显出你的职业素质
- JAVA 反射机制解析