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

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

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

    隨筆-61  評論-159  文章-0  trackbacks-0

    hihernate一對多關聯映射(單向Classes----->Student)

    一對多關聯映射利用了多對一關聯映射原理

    多對一關聯映射:在多的一端加入一個外鍵指向一的一端,它維護的關系是多指向一
    一對多關聯映射:在多的一端加入一個外鍵指向一的一端,它維護的關系是一指向多

    也就是說一對多和多對一的映射策略是一樣的,只是站的角度不同

    在一一端維護關系的缺點:
     * 如果將t_student表里的classesid字段設置為非空,則無法保存
     * 因為不是在student這一端維護關系,所以student不知道是哪個班的,
       所以需要發出多余的update語句來更新關系

    例子:
            1、Classes的POJO類
    1public class Classes {
    2    private int id;
    3    private String name;
    4    private Set students;
    5//省略setter、getter方法
    6}
           2、Student的POJO類
    1public class Student {
    2    private int id;
    3    private String name;
    4//省略setter、getter方法
    5}
    3、Classes中的映射文件Classes.hbm.xml
     1<?xml version="1.0"?>
     2<!DOCTYPE hibernate-mapping PUBLIC 
     3    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
     4    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
     5<hibernate-mapping package="org.apple.hibernate">
     6    <class name="Classes" table="t_classes" >
     7        <id name="id">
     8            <generator class="native"/>
     9        </id>
    10        <property name="name"/>
    11        <set name="students">
    12            <key column="classesid"/>
    13            <one-to-many class="Student"/>
    14        </set>
    15    </class>
    16</hibernate-mapping>

    4、Student中的映射文件Student.hbm.xml
     1<?xml version="1.0"?>
     2<!DOCTYPE hibernate-mapping PUBLIC 
     3    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
     4    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
     5<hibernate-mapping>
     6    <class name="org.apple.hibernate.Student" table="t_student">
     7        <id name="id">
     8            <generator class="native"/>
     9        </id>
    10        <property name="name"/>
    11    </class>
    12</hibernate-mapping>

    5、測試方法:
     1import java.util.HashSet;
     2import java.util.Set;
     3import junit.framework.TestCase;
     4import org.hibernate.Session;
     5
     6public class One2Many1 extends TestCase {
     7    public void testSave(){
     8        Session session = null;
     9        try {
    10            session = HibernateUtil.getSession();
    11            session.beginTransaction();
    12            Student student = new Student();
    13            student.setName("張三");
    14            Student student1= new Student();
    15            student1.setName("李四");
    16            session.save(student);
    17            session.save(student1);
    18            Set students = new HashSet();
    19            students.add(student);
    20            students.add(student1);
    21            Classes classes = new Classes();
    22            classes.setName("計算機04-3");
    23            classes.setStudents(students);
    24            session.save(classes);
    25            session.beginTransaction().commit();
    26            
    27        }
     catch (Exception e) {
    28            e.printStackTrace();
    29            session.beginTransaction().rollback();
    30        }
    finally
    31        {
    32            session.close();
    33        }

    34    }

    35
    36}

    37

    6、控制臺輸出sql語句
    Hibernate: insert into t_student (name) values (?)
    Hibernate: insert into t_student (name) values (?)
    Hibernate: insert into t_classes (name) values (?)
    Hibernate: update t_student set classesid=? where id=?
    Hibernate: update t_student set classesid=? where id=?


    PS:后面兩條update語句是由于t_student表里面的classesid數據更新導致。

    -------------------------------------------------------------------------------------------------
    PS:本博客文章,如果沒有注明是有“轉”字樣,屬于本人原創。如果需要轉載,務必注明作者文章的詳細出處地址,否則不允許轉載,多謝合作!
    posted on 2008-10-11 13:37 apple0668 閱讀(640) 評論(0)  編輯  收藏 所屬分類: hibernate
    主站蜘蛛池模板: 女人18毛片免费观看| 免费一级不卡毛片| 在线免费观看一区二区三区| 亚洲综合小说久久另类区| 男女午夜24式免费视频| 亚洲av午夜福利精品一区| 免费91麻豆精品国产自产在线观看| 国产AV无码专区亚洲精品| 你好老叔电影观看免费| 亚洲AV日韩精品久久久久久久 | 全黄大全大色全免费大片| 精品国产亚洲一区二区三区| 日韩av无码免费播放| 亚洲精品高清视频| 91情侣在线精品国产免费| 精品亚洲视频在线| 国产亚洲美日韩AV中文字幕无码成人| 97国免费在线视频| 亚洲资源在线视频| 免费特级黄毛片在线成人观看| 国产91成人精品亚洲精品| 国产成人综合亚洲亚洲国产第一页 | 国产18禁黄网站免费观看| 国产精品永久免费| 亚洲网站免费观看| 成人最新午夜免费视频| 色多多A级毛片免费看| 久久久久亚洲av无码尤物| 免费观看激色视频网站bd| 国产精品亚洲专区无码唯爱网| 亚洲国产综合久久天堂| 国产一级片免费看| 亚洲 暴爽 AV人人爽日日碰| 亚洲欧洲自拍拍偷精品 美利坚| 亚洲成人免费在线| 亚洲人成人伊人成综合网无码| 亚洲精品线路一在线观看 | 亚洲精品国产国语| 久久精品国产亚洲一区二区三区| 91热久久免费精品99| 国产精品自拍亚洲|