组件映射
        
        ------------------------------                            ------------------------------
        |         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类可以关联其他持久化类
               

posted on 2017-03-02 13:40  JamelAr  阅读(126)  评论(0编辑  收藏  举报