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

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

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

    java技術(shù)

    hibernate spring struts

    BlogJava 聯(lián)系 聚合 管理
      18 Posts :: 0 Stories :: 1 Comments :: 0 Trackbacks

    5.1    一對一映射
    雙向一對一關(guān)系需要在關(guān)系維護端(owner side)的one2one Annotition定義mappedBy屬性。建表時在關(guān)系被維護端(inverse side)建立外鍵列指向關(guān)系維護端的主鍵列。
    假設(shè)Country 和 Capital 是雙向一對一的關(guān)系,具體元數(shù)據(jù)聲明如下:

    public class Country {       
    @OneToOne(optional = true,cascade = CascadeType.ALL, mappedBy = "country")       
    private Capital capital;
    }

    public class Capital {       
    @OneToOne(optional = false, cascade = CascadeType.ALL)       
    @JoinColumn(name = "COUNTRY_ID", referencedColumnName = "id")       
    private Country country;                                      

    代碼中元數(shù)據(jù)的說明:
    元數(shù)據(jù)描述:
    @OneToOne(optional = true,cascade = CascadeType.ALL, mappedBy = "country")
    optional聲明關(guān)系是否是必須存在的,即是否允許其中一端為null。
    cascade聲明級聯(lián)操作。
    @JoinColumn(name = "COUNTRY_ID", referencedColumnName = "id")
    name聲明外鍵列的名字,referencedColumnName聲明外鍵指向列的列名。

    5.2   一對多映射
    雙向一對多關(guān)系,一是關(guān)系維護端(owner side),多是關(guān)系被維護端(inverse side)。 建表時在關(guān)系被維護端建立外鍵列指向關(guān)系維護端的主鍵列。
    假設(shè)Father 和 Child 是雙向一對多的關(guān)系,具體元數(shù)據(jù)聲明如下:
    public class Father {       
    @OneToMany(targetEntity = Child.class, cascade = CascadeType.ALL, mappedBy = "father")       
    public List<Child> getChildren() {              
    return children;        }
    }

    public class Child {       
    @ManyToOne       
    @JoinColumn(name = "FATHER_ID", referencedColumnName = "id")       
    public Father getFather() {              
    return father;       
    }
    }
     
    代碼中元數(shù)據(jù)的說明:元數(shù)據(jù)描述:
    @OneToMany(targetEntity = Child.class, cascade = CascadeType.ALL, mappedBy = "father")
    targetEntity = Child.class表明關(guān)系另一端的實體類型
    cascade聲明級聯(lián)操作。
    mappedBy聲明關(guān)系維護端的字段(field)名。
    @ManyToOne
    @JoinColumn(name = "FATHER_ID", referencedColumnName = "id")
    name聲明外鍵列的名字,referencedColumnName聲明外鍵指向列的列名。

    5.3     多對多映射
    多對多映射采取中間表連接的映射策略,建立的中間表將分別引入兩邊的主鍵作為外鍵。
    EJB3對于中間表的元數(shù)據(jù)提供了可配置的方式,用戶可以自定義中間表的表名,列名。
    假設(shè)Teacher 和 Student是多對多的關(guān)系,具體元數(shù)據(jù)聲明如下:
    pubic class Teacher{       
    @ManyToMany(targetEntity = Student.class, cascade = CascadeType.PERSIST)       
    @JoinTable(table = @Table(name = "M2M_TEACHER_STUDENT"),       
    joinColumns = @JoinColumn(name = "TEACHER_ID", referencedColumnName = "ID"), 
    inverseJoinColumns = @JoinColumn(name = "STUDENT_ID", referencedColumnName = "ID"))       
    public List<Student> getStudents() {
    return students;
    }                                     
    }

    public class Student{       
    @ManyToMany(targetEntity = Teacher.class, mappedBy = "students")       
    public List<Teacher> getTeachers() {              
    return teachers;        }
    }

    代碼中元數(shù)據(jù)的說明:
    元數(shù)據(jù)描述:
    @ManyToMany(targetEntity = Student.class, cascade = CascadeType.PERSIST)
    targetEntity = Student.class表明關(guān)系另一端的實體類型。cascade聲明級聯(lián)操作。
    @JoinTable(table = @Table(name = "M2M_TEACHER_STUDENT"),
    joinColumns = @JoinColumn(name = "TEACHER_ID", referencedColumnName = "ID"),
    inverseJoinColumns = @JoinColumn(name = "STUDENT_ID", referencedColumnName = "ID"))
    JoinTable配置中間表信息,它由3個部分組成:
    1) table = @Table(name = "M2M_TEACHER_STUDENT") ,聲明中間表的名字
    2) joinColumns ,定義中間表與關(guān)系維護端的外鍵關(guān)系。
    3) inverseJoinColumns,定義中間表與inverse端的外鍵關(guān)系.

    本文來自CSDN博客,出處:http://blog.csdn.net/senton/archive/2007/03/15/1529969.aspx

    posted on 2009-11-05 12:40 just 閱讀(1348) 評論(1)  編輯  收藏

    Feedback

    # re: JPA 映射 2013-08-16 12:15 ew
    而無法為  回復(fù)  更多評論
      


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲AV电影天堂男人的天堂| 亚洲成年人电影网站| 国产精品亚洲а∨天堂2021| 手机在线看永久av片免费| 国产精品99精品久久免费| 亚洲七七久久精品中文国产| 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 黄色成人网站免费无码av| 亚洲日本va在线观看| 波多野结衣中文字幕免费视频| 亚洲视频在线观看网址| 国产产在线精品亚洲AAVV| 日韩一区二区免费视频| 四虎影视永久在线精品免费| 精品亚洲成α人无码成α在线观看 | 国产一卡二卡≡卡四卡免费乱码| 色欲色欲天天天www亚洲伊| 免费国产成人午夜电影| 久久国产乱子伦精品免费午夜 | 国产精品jizz在线观看免费| 国产精品亚洲一区二区无码| 亚洲第一福利网站在线观看| 一级做a爱片特黄在线观看免费看| 最新亚洲成av人免费看| 三年片在线观看免费大全电影 | 成人免费视频观看无遮挡| 国产区图片区小说区亚洲区| 亚洲自偷自偷偷色无码中文| 久久精品免费电影| 久久精品国产亚洲αv忘忧草 | 亚洲av无码成h人动漫无遮挡| 天天综合亚洲色在线精品| 亚洲А∨精品天堂在线| 无码国产精品一区二区免费模式 | 免费无码一区二区三区蜜桃| 在线免费观看韩国a视频| 一区二区三区免费在线观看| 久久亚洲日韩看片无码| 国产一级高清免费观看| 日韩免费人妻AV无码专区蜜桃| 亚洲成av人片在线天堂无|