组件映射
------------------------------ ------------------------------
| EmpHomeAddressd | | EmpInfo |
|----------------------------| |----------------------------|
| empInfo : EmpInfo | <------------- | eid : Integer |
| ehoMestreet : String | | ename : String |
| ehomecity : String | | ehome : EmpHomeAddress |
| ehomeprovince : String | ------------------------------
| ehomezipcode : String |
------------------------------
在EmpInfo.hbm.xml中编写配置文件
<component name="ehome" class="com.entity.EmpHomeAddressd">
<parent name="empinfo"/>
<property name="ehomestreet" type="java.lang.String" column="ehoMestreet"/>
<property name="ehomecity" type="java.lang.String" column="ehomecity"/>
<property name="ehomeprovince" type="java.lang.String" column="ehomeprovince"/>
<property name="ehomezipcode" type="java.lang.String" column="ehomezipcode"/>
</component>
注:<component>元素表明ehome属性是Empinfo类的一个组成部分,在Hibernate中称为主键
<component>元素有以下两个属性
name:设定被映射的持久化类的属性名,此处为Empinfo类的ehome属性
class:设定ehome属性的类型,此处为ehome属性的EmpHomeAddress类型
EmpHomeAddress类作为Hibernate的组件,具有以下特征:
1.EmpHomeAddress类没有OID,在数据库后者能够没有对应的表,不需要单独创建EmpHomeAddress类的映射文件
2.不能单独持久化EmpHomeAddress对象,EmpHomeAddress对象的生命周期依赖于Empinfo对象的生命周期
3.其他持久化不允许关联EmpHomeAddress类,EmpHomeAddress类可以关联其他持久化类