Hibernate映射(一對多)

Hibernate映射關系其實有很多種黍衙,包含一對一,一對多荠诬,多對一琅翻,多對多。其中柑贞,還有包含單向關聯(lián)望迎,多想關聯(lián)。但是鑒于時空關系凌外,本文只談一下單向一對多關系的映射。而多對一進行反向思維就是一對多涛浙。

如何確定一個映射關系:

這個取決于需求康辑,比如,你的師生管理項目中轿亮,客戶已經明確規(guī)定疮薇,在這個項目中,老師可以教多個學生我注,學生也可以有多個老師按咒,這很明顯是m:n就是多對多的關系。如果說做部門與員工這樣的表但骨,那么一個部門可以有多個員工励七,但是智袭,每個員工只能在一個部門工作,這就是一個1:M一對多的關系掠抬。到底要用哪種關系吼野,取決于你對客戶需求的理解 。

正文

這里我所寫的是一個班級對應著多個學生两波。

一對多的映射關系:

類的設定:在多對一的關系中瞳步,多的哪一方屬于歸屬方,而少的那一方屬于被歸屬方腰奋。(歸屬方歸屬于被歸屬方)在設定類中的內容的時候单起,一的那一方除了有自己特有的屬性意外,還應該將多的那一方的Set集合寫進一的那一方的類中劣坊。而多的那一方嘀倒,應該將一的那一方的對象寫在自己的類的屬性中,表示自己歸屬于這個類讼稚。
如:

Classes.java
package com.zhiyou.hibernate.entity;
import java.util.HashSet;
import java.util.Set;
public class Classes {
/* 這里我只寫了屬性括儒,并沒有寫set和get方法。IDE工具可以自動生成*/
    private int id;
    private String name;
    // 一對多通常使用Set來映射锐想,Set是不可重復內容帮寻。
    private Set<Student> students = new HashSet<Student>();
}
Student.java
/* 這里我只寫了屬性,并沒有寫set和get方法赠摇。IDE工具可以自動生成*/
    private int id;
    private String name;
    private Classes classes;

處理完class類固逗,就需要配置與Class類對應的hub的xml文件。
在Hibernate中所有的實體類都對應著一個hub配置文件藕帜。
而hub配置文件同時又關聯(lián)著數據庫表烫罩。

classes.hub.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.zhiyou.hibernate.entity">

    <class name="Classes" table="t_classess">
        <id name="id" column="id">
            <!-- 這個表示主鍵的生成方式
                http://blog.csdn.net/zxygww/article/details/45194445
             -->
            <generator class="native"/>
        </id>
        <property name="name" column="name"></property>
        <!-- 設置Set集合屬性,用于關聯(lián)多個學生 -->  
        <set name="students" >
        <!-- 在t_student表中創(chuàng)建外鍵classid,與本表的id對應 -->  
            <key column="classesid" />
            <!-- 
            <one-to-many>
            <many-to-one>
            的選擇取決于當前類與指向類的關系洽故,如果當前為一對多中的一贝攒,那么應當選擇<one-to-many>
            如果當前是一對多種的多那么當選擇<many-to-one>,當然如果是單向關聯(lián)时甚,那么就無需寫此標簽
            http://blog.csdn.net/xiaoxian8023/article/details/15339657
             -->
            <one-to-many class="Student"/>
        </set>
    </class>
</hibernate-mapping>
student.hub.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="com.zhiyou.hibernate.entity.Student" table="t_student">
        <id name="id" column="id">
            <generator class="native"/>
        </id>
        <property name="name" column="name"/>
    </class>
</hibernate-mapping>
備注:
對classes.hub.xml的補充說明
所有的以上步驟都必須在hibernate.cfg.xml隘弊,spring-hibernat.xml 與Spring和SpringMVC整合之后才可以在maven項目中運行
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市荒适,隨后出現(xiàn)的幾起案子梨熙,更是在濱河造成了極大的恐慌,老刑警劉巖刀诬,帶你破解...
    沈念sama閱讀 223,126評論 6 520
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件咽扇,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機质欲,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,421評論 3 400
  • 文/潘曉璐 我一進店門树埠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人把敞,你說我怎么就攤上這事弥奸。” “怎么了奋早?”我有些...
    開封第一講書人閱讀 169,941評論 0 366
  • 文/不壞的土叔 我叫張陵盛霎,是天一觀的道長。 經常有香客問我耽装,道長愤炸,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,294評論 1 300
  • 正文 為了忘掉前任掉奄,我火速辦了婚禮规个,結果婚禮上,老公的妹妹穿的比我還像新娘姓建。我一直安慰自己诞仓,他們只是感情好,可當我...
    茶點故事閱讀 69,295評論 6 398
  • 文/花漫 我一把揭開白布速兔。 她就那樣靜靜地躺著墅拭,像睡著了一般。 火紅的嫁衣襯著肌膚如雪涣狗。 梳的紋絲不亂的頭發(fā)上谍婉,一...
    開封第一講書人閱讀 52,874評論 1 314
  • 那天,我揣著相機與錄音镀钓,去河邊找鬼穗熬。 笑死,一個胖子當著我的面吹牛丁溅,可吹牛的內容都是我干的唤蔗。 我是一名探鬼主播,決...
    沈念sama閱讀 41,285評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼窟赏,長吁一口氣:“原來是場噩夢啊……” “哼措译!你這毒婦竟也來了?” 一聲冷哼從身側響起饰序,我...
    開封第一講書人閱讀 40,249評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎规哪,沒想到半個月后求豫,有當地人在樹林里發(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 46,760評論 1 321
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,840評論 3 343
  • 正文 我和宋清朗相戀三年蝠嘉,在試婚紗的時候發(fā)現(xiàn)自己被綠了最疆。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,973評論 1 354
  • 序言:一個原本活蹦亂跳的男人離奇死亡蚤告,死狀恐怖努酸,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情杜恰,我是刑警寧澤获诈,帶...
    沈念sama閱讀 36,631評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站心褐,受9級特大地震影響舔涎,放射性物質發(fā)生泄漏。R本人自食惡果不足惜逗爹,卻給世界環(huán)境...
    茶點故事閱讀 42,315評論 3 336
  • 文/蒙蒙 一亡嫌、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧掘而,春花似錦挟冠、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,797評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至女蜈,卻和暖如春持舆,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背伪窖。 一陣腳步聲響...
    開封第一講書人閱讀 33,926評論 1 275
  • 我被黑心中介騙來泰國打工逸寓, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人覆山。 一個月前我還...
    沈念sama閱讀 49,431評論 3 379
  • 正文 我出身青樓竹伸,卻偏偏與公主長得像,于是被迫代替她去往敵國和親簇宽。 傳聞我的和親對象是個殘疾皇子勋篓,可洞房花燭夜當晚...
    茶點故事閱讀 45,982評論 2 361

推薦閱讀更多精彩內容