<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    想飛就別怕摔

    大爺?shù)牟M罵人

    Hibernate學習(二) ---【一對一主鍵單向關(guān)聯(lián)】

    為了簡潔,我們創(chuàng)建兩張表分別是Student和Certificate,它們只有主鍵ID和另外一個對象的引用標識符。從student可以加載certificate。單向
    Certificate Student.getCer();//返回Certificate對象
    Student Certificate.gerStu();//返回Student對象

    1.主鍵關(guān)聯(lián)
    所謂以主鍵關(guān)聯(lián),是指兩張數(shù)據(jù)庫表通過主鍵取得一對一的關(guān)聯(lián)關(guān)系,也就是說一張表的主鍵是引用另一張表的外鍵。例如,對于Student和Certificate對象,一般來說是Student是主體,Certificate對象依附Student存在。它們主鍵關(guān)聯(lián)的一對一關(guān)系就是在數(shù)據(jù)庫中Student和Certificate表使用相同的主鍵值,這個由Student對象生成。Certificate應用這個主鍵值。它們共享同一主鍵值,這通過在Certificate表中設(shè)置外鍵來實現(xiàn)。一對一主鍵關(guān)聯(lián)映射中默認cascade="true";
    2.一對一以主鍵關(guān)聯(lián)的使用
    既然它們是共用一個主鍵值,關(guān)鍵是如何讓另一張表引用已經(jīng)生成的主鍵值。這在Hibernate中使用的是主鍵的foreign生成機制。
    下面是Student和Certificate類的配置源碼。
    Student.hbm.xml
    <hibernate-mapping>
        
    <class name="model.Student" table="student" lazy="true"><!--把類數(shù)表關(guān)聯(lián)起來-->
            
    <id name="id" unsaved-value="null"><!--id的產(chǎn)生方式是uuid.hex-->
                
    <generator class="uuid.hex" />
            
    </id>
            
    <property name="name" type="String"><!--映射學生名-->
            
    <property name="carId" type="String"><!--映射映射號-->
            
    <property name="age" type="int"><!--映射學生年齡-->
            
    <one-to-one name="cer"
             class
    ="model.Certificate"
             fetch
    ="join" cascade="all" constrained="true"/><!--映射文件的身份證對象-->
         
    </class>
    </hibernate-mapping>

    以上的one-to-one設(shè)置為cascade="all",表示增加、刪除、及修改Student對象時,都會級聯(lián)增加、刪除、修改Certificate對象。
    constrained="true"約束這句話也要加上
    Certificate.hbm.xml
    <hibernate-mapping>
        
    <class name="model.Certificate" table="certificate" lazy="true"><!--把類數(shù)表關(guān)聯(lián)起來-->
            
    <id name="id">
    <!--外鍵生成機制,引用stu對象的主鍵作為certificate數(shù)據(jù)表的主鍵和外鍵-->
                
    <generator class="foreign">
                     
    <param name="property">stu</param>
                
    </genetator>
            
    </id>
            
    <property name="describe" column="describe"type="String">
         
    </class>
    </hibernate-mapping>
    上述的兩個配置文件在one-to-one中都沒有設(shè)置column屬性(其實他本身就沒有column屬性)。兩個表是通過主鍵值得以連接的。現(xiàn)在建立一個學生和身份證對象,將他們設(shè)置為一對一關(guān)聯(lián)存入數(shù)據(jù)庫。
        //建立身份證
        Certificate cer = new Certificate();
        cer.setDescribe(
    "spark");
        
    //新建學生
        Student stu = new Student();
        stu.setName(
    "spark");
        stu.setCardid(
    "10001");
        stu.setAge(
    22);
        
    //設(shè)置學生和身份證之間的關(guān)聯(lián)
        stu.setCer(cer);
        StudentDAO.saveObj(stu);

    posted on 2008-07-24 12:42 生命的綻放 閱讀(1854) 評論(0)  編輯  收藏 所屬分類: Hibernate

    <2008年7月>
    293012345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    導航

    統(tǒng)計

    常用鏈接

    留言簿(5)

    隨筆分類(94)

    隨筆檔案(93)

    文章分類(5)

    文章檔案(5)

    相冊

    JAVA之橋

    SQL之音

    兄弟之窗

    常用工具下載

    積分與排名

    最新評論

    閱讀排行榜

    主站蜘蛛池模板: 51视频精品全部免费最新| 中文字幕在线免费看线人| 18勿入网站免费永久| 亚洲熟妇av一区二区三区| 白白色免费在线视频| 日韩高清免费观看| 亚洲精品456人成在线| 丁香花免费高清视频完整版| 亚洲第一页在线观看| 免费国产污网站在线观看15| 亚洲欧洲第一a在线观看| 日本亚洲欧洲免费天堂午夜看片女人员 | 亚洲视频中文字幕| 人妻在线日韩免费视频| 亚洲久悠悠色悠在线播放| 57PAO成人国产永久免费视频 | 青青草国产免费国产是公开| 四虎国产精品免费久久影院| 特级毛片A级毛片免费播放| 亚洲精品国产成人影院| 皇色在线免费视频| 亚洲国产精华液网站w| 亚洲色偷偷偷综合网| 国产麻豆免费观看91| 无套内谢孕妇毛片免费看看| 中文字幕第13亚洲另类| 日本免费人成网ww555在线| 亚洲大片免费观看| 成人免费无码精品国产电影| 2022免费国产精品福利在线| 亚洲乱码一区二区三区在线观看| 久久这里只精品热免费99| 亚洲人成毛片线播放| 日批视频网址免费观看| 婷婷亚洲综合五月天小说| 午夜在线亚洲男人午在线| 中文字幕亚洲无线码a| 最好看的中文字幕2019免费| 亚洲国产日韩在线视频| 日本免费人成视频在线观看| 亚洲伊人久久大香线蕉AV|