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

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

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

    想飛就別怕摔

    大爺的并TM罵人

    Hibernate學習(二) ---【一對一主鍵單向關聯】

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

    1.主鍵關聯
    所謂以主鍵關聯,是指兩張數據庫表通過主鍵取得一對一的關聯關系,也就是說一張表的主鍵是引用另一張表的外鍵。例如,對于Student和Certificate對象,一般來說是Student是主體,Certificate對象依附Student存在。它們主鍵關聯的一對一關系就是在數據庫中Student和Certificate表使用相同的主鍵值,這個由Student對象生成。Certificate應用這個主鍵值。它們共享同一主鍵值,這通過在Certificate表中設置外鍵來實現。一對一主鍵關聯映射中默認cascade="true";
    2.一對一以主鍵關聯的使用
    既然它們是共用一個主鍵值,關鍵是如何讓另一張表引用已經生成的主鍵值。這在Hibernate中使用的是主鍵的foreign生成機制。
    下面是Student和Certificate類的配置源碼。
    Student.hbm.xml
    <hibernate-mapping>
        
    <class name="model.Student" table="student" lazy="true"><!--把類數表關聯起來-->
            
    <id name="id" unsaved-value="null"><!--id的產生方式是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設置為cascade="all",表示增加、刪除、及修改Student對象時,都會級聯增加、刪除、修改Certificate對象。
    constrained="true"約束這句話也要加上
    Certificate.hbm.xml
    <hibernate-mapping>
        
    <class name="model.Certificate" table="certificate" lazy="true"><!--把類數表關聯起來-->
            
    <id name="id">
    <!--外鍵生成機制,引用stu對象的主鍵作為certificate數據表的主鍵和外鍵-->
                
    <generator class="foreign">
                     
    <param name="property">stu</param>
                
    </genetator>
            
    </id>
            
    <property name="describe" column="describe"type="String">
         
    </class>
    </hibernate-mapping>
    上述的兩個配置文件在one-to-one中都沒有設置column屬性(其實他本身就沒有column屬性)。兩個表是通過主鍵值得以連接的?,F在建立一個學生和身份證對象,將他們設置為一對一關聯存入數據庫。
        //建立身份證
        Certificate cer = new Certificate();
        cer.setDescribe(
    "spark");
        
    //新建學生
        Student stu = new Student();
        stu.setName(
    "spark");
        stu.setCardid(
    "10001");
        stu.setAge(
    22);
        
    //設置學生和身份證之間的關聯
        stu.setCer(cer);
        StudentDAO.saveObj(stu);

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

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

    導航

    統計

    常用鏈接

    留言簿(5)

    隨筆分類(94)

    隨筆檔案(93)

    文章分類(5)

    文章檔案(5)

    相冊

    JAVA之橋

    SQL之音

    兄弟之窗

    常用工具下載

    積分與排名

    最新評論

    閱讀排行榜

    主站蜘蛛池模板: 国产成人免费网站在线观看| 毛片a级毛片免费播放100| 亚洲国产精品热久久| jlzzjlzz亚洲jzjzjz| 亚洲av无码成人影院一区| 四虎永久在线精品免费网址| 亚洲国产精品成人精品无码区| 亚洲色成人WWW永久在线观看| 男男AV纯肉无码免费播放无码| 亚洲免费观看在线视频| 久久久高清免费视频 | 99re6在线精品免费观看| 性做久久久久久免费观看| 亚洲精品无码成人片久久| 免费观看91视频| 亚洲一区二区三区在线视频| 国产V片在线播放免费无码| 亚洲国产日韩在线视频| 18级成人毛片免费观看| 亚洲午夜久久久影院| 亚洲1区2区3区精华液| 亚洲美女高清一区二区三区| 任你躁在线精品免费| 亚洲黄片手机免费观看| 免费黄网站在线看| 亚洲乱码一二三四区麻豆| 国产真人无遮挡作爱免费视频| 亚洲精品黄色视频在线观看免费资源| 亚洲色爱图小说专区| 波多野结衣在线免费视频| 亚洲AV噜噜一区二区三区| 曰韩亚洲av人人夜夜澡人人爽| 足恋玩丝袜脚视频免费网站| 亚洲欧美国产欧美色欲| 国产亚洲成人在线播放va| 人体大胆做受免费视频| 99ri精品国产亚洲| 国产午夜影视大全免费观看| 美女被cao网站免费看在线看| 亚洲男人天堂2018av| 国产精品亚洲精品日韩已满|