•
建立域模型和关系数据模型有着不同的出发点
:
–
域模型
:
由程序代码组成
,
通过细化持久化类的的粒度可提高代码的可重用性
,
简化编程
–
–
在没有数据冗余的情况下
,
应该尽可能减少表的数目
,
简化表之间的参照关系
,
以便提高数据的访问速度
•
•
Hibernate
把持久化类的属性分为两种
:
–
值
(value)
类型
:
没有
OID
,
不能被单独持久化
,
生命周期依赖于所属的持久化类的对象的生命周期
–
实体
(entity)
类型
:
有
OID,
可以被单独持久化
,
有独立的生命周期
•
显然无法直接用
property
映射
pay
属性
•
Hibernate
使用
<component>
元素来映射组成关系
,
该元素表名
pay
属性是
Worker
类一个组成部分
,
在
Hibernate
中称之为
组件
<!-- 映射组成关系 -->
<component name="pay" class="Pay">
<parent name="worker"/>
<!-- 指定组成关系的组件属性 -->
<property name="monthlyPay" column="MONTHLY_PAY"></property>
<property name="vocationWithPay" column="VOCATION_WITH_PAY"></property>
<property name="yearPay" column="YEAR_PAY"></property>
</component>
<component name="pay" class="Pay">
<parent name="worker"/>
<!-- 指定组成关系的组件属性 -->
<property name="monthlyPay" column="MONTHLY_PAY"></property>
<property name="vocationWithPay" column="VOCATION_WITH_PAY"></property>
<property name="yearPay" column="YEAR_PAY"></property>
</component>
•
<component>
元素来映射组成关系
–
class:
设定组成关系属性的类型
,
此处表明
pay
属性为
Pay
类型
•
<
parent
>
元素
指定组件属性所属的整体类
–
name:
整体类在组件类中的属性名