hibernate学习记录8
来源:互联网 发布:免费php人才招聘系统 编辑:程序博客网 时间:2024/05/01 16:42
继承映射
Employee中有两个子类,分别是技术(Skiller)和销售(Sales)
三种方式解决这个问题:
1、一张表继承体系一张表
Employee表结构修改为id,depart_id,type(表示员工的类型),skill,sell。
employee.hbm.xml文件
<class name="Employee" table="Employee" discriminator-value="0" >
<id name="employeeId" column="employee_id" type="java.lang.Integer">
<generator class="native">
<param name="sequence">employee_sequence</param>
</generator>
</id>
<property name="employeeName" column="employee_name" type="java.lang.String" unique-key="true"/>
<many-to-one name="depart" column="depart_id"></many-to-one>
<discriminator type="int" column="type"></discriminator>
<subclass name="Skiller" discriminator-value="1">
<property name="skill"/>
</subclass>
<subclass name="Sales" discriminator-value="2">
<property name="sell"/>
</subclass>
</class>
2、每个子类一张表(joined-subclass)(表结构)
Employee.hbm.xml文件
<class name="Employee" table="Employee" discriminator-value="0" >
<id name="employeeId" column="employee_id" type="java.lang.Integer">
<generator class="native">
<param name="sequence">employee_sequence</param>
</generator>
</id>
<property name="employeeName" column="employee_name" type="java.lang.String" unique-key="true"/>
<many-to-one name="depart" column="depart_id"></many-to-one>
<!--
<discriminator type="int" column="type"></discriminator>
<subclass name="Skiller" discriminator-value="1">
<property name="skill"/>
</subclass>
<subclass name="Sales" discriminator-value="2">
<property name="sell"/>
</subclass>
-->
<joined-subclass name="Skiller" table="skiller">
<key column="emp_id"/>
<property name="skill"/>
</joined-subclass>
<joined-subclass name="Sales" table="sales">
<key column="emp_id"/>
<property name="sell"/>
</joined-subclass>
</class>
3、混合使用“一个类继承体系一张表”和“每个子类一张表”(表结构)
<subclass name="Skiller" discriminator-value="1">
<property name="skill"/>
</subclass>
<subclass name="Sales" discriminator-value="2">
<join table="sales">
<key column="emp_id"/>
<property name="sell"/>
</join>
</subclass>
4、每个具体类一张表(union-subclass)
hibernate.hbm.xml文件
如果employee不是抽象类,就会有employee表
每个子类都有员工的完整信息
<union-subclass name="Skiller" table="skiller">
<property name="skill"/>
</union-subclass>
<union-subclass name="Sales" table="sales">
<property name="sell"/>
</union-subclass>
- hibernate学习记录8
- Hibernate学习记录
- hibernate学习记录
- hibernate缓存学习记录
- hibernate学习记录1
- hibernate学习记录2
- hibernate学习记录3
- hibernate学习记录5
- hibernate学习记录6
- hibernate学习记录7
- Hibernate 学习记录
- Hibernate 学习记录 2
- Hibernate 学习记录 3
- Hibernate 学习记录 4
- Hibernate学习记录1
- Hibernate学习记录2
- 关于Hibernate学习记录
- Hibernate学习-02:Hibernate的日志记录
- 一步步学习SPD2010--附录C--使用SP2010管理任务(2)--创建网站集
- 【Android】应用的loading加载动画制作
- framework之深入理解Vold和Rild
- 关于协方差矩阵的理解
- assert()函数用法总结
- hibernate学习记录8
- java 简单的工具类帮助文档的编写
- 曝张艺谋与美公司洽谈拍《长城》 章子怡有望加盟
- 一切成功源于积累——20140320 进击的新元 非美 以及黄金
- 为C#应用程序创建Visual Studio安装项目生成MSI包安装程序
- 【学习笔记】Linux基本操作(6)--- Vi文本编辑器
- JavaScript变量作用域
- J2EE同域中跨项目session共享实现
- ListView滑动过程中图片显示重复错位闪烁问题解决