隨筆 - 0, 文章 - 75, 評(píng)論 - 0, 引用 - 0

          導(dǎo)航

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

          留言簿

          文章檔案

          搜索

          •  

          最新評(píng)論

          Hibernate關(guān)聯(lián)映射2


          單向一對(duì)多關(guān)聯(lián):


          由“一”
          的一端加載“多”
          的一端,關(guān)系由“一”的一端來(lái)維護(hù)
          在JavaBean中是在“一”的一端中持有“多”的一端的集合
          Hibernate把這種關(guān)系反映到數(shù)據(jù)庫(kù)的策略是在“多”的一端的表上加一個(gè)外鍵指向“一”的一端的表
          在“一”的一端維護(hù)關(guān)系是不提倡的
          將“多”的一端的外鍵添加非空約束,導(dǎo)致數(shù)據(jù)不能插入
          插入數(shù)據(jù)效率降低


          反過(guò)來(lái)看,一個(gè)區(qū)可以有多個(gè)街道


          public
          class Street implements
          java.io.Serializable
          {
          //街道


          private
          Long id;


          private
          Long
          district_id;


          private
          String name;



          /**
          默認(rèn)的構(gòu)造方法
          *
          /


          public
          Street(){



          }



          //
          省略部分setter/getter方法


          public
          Long
          getDistrict_id(){



          return
          district_id;


          }


          public void
          setDistrict_id(Long
          district_id)
          {



          this.district_id
          =
          district_id;


          }


          }




          public
          class District implements
          java.io.Serializable
          {
          //區(qū)


          private
          Long id;


          private
          String name;


          private
          Set streets = new
          HashSet();



          /**
          默認(rèn)的構(gòu)造方法
          *
          /


          public
          District(){



          }



          //
          省略部分setter/getter方法


          public
          Set
          getStreets(){



          return
          this.streets;



          }


          public void setStreets(Set
          streets)
          {



          this.streets
          =
          streets
          ;



          }


          }




          <hibernate-mapping>


          <class name="cn.jbit.houserent.bean.District"
          table="
          district">



          <id name="id" type="
          java.lang.Long">



          <column name="id" />



          <generator class="native" />



          </id>



          <property name="name" type="
          java.lang.String">



          <column name="name" length="50" not-null="true" />



          </property>



          <set
          name="streets" table="street“>



          <key>



          <column name="
          district_id"/><!-- 設(shè)置關(guān)系的字段 -->



          </key>



          <one-to-many class="
          cn.jbit.houserent.bean.Street"
          /><!-- 設(shè)置關(guān)系的對(duì)象 -->



          </set>



          </class>


          </hibernate-mapping>




          set元素的常用屬性:



































          屬性


          含義和作用


          必須


          默認(rèn)值


          name


          映射類(lèi)屬性的名稱(chēng)


          Y



          table


          關(guān)聯(lián)類(lèi)的目標(biāo)數(shù)據(jù)庫(kù)表


          N



          lazy


          指定關(guān)聯(lián)對(duì)象是否使用延遲加載以及延遲加載的策略


          N


          proxy


          fetch


          設(shè)置抓取數(shù)據(jù)的策略


          N


          select




          同時(shí)配置兩者就成了雙向一對(duì)多關(guān)聯(lián)

          posted on 2012-04-22 15:49 hantai 閱讀(56) 評(píng)論(0)  編輯  收藏


          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 买车| 岑巩县| 金华市| 桃园市| 西乌珠穆沁旗| 萍乡市| 呼玛县| 汾阳市| 岳阳县| 曲沃县| 即墨市| 湖北省| 新蔡县| 山阳县| 三穗县| 舟曲县| 嘉义县| 明光市| 桐城市| 商河县| 阿鲁科尔沁旗| 灵宝市| 合肥市| 莲花县| 彰化县| 色达县| 金华市| 剑河县| 芦溪县| 教育| 上蔡县| 兴安盟| 富宁县| 姜堰市| 灵台县| 马山县| 若尔盖县| 延安市| 永昌县| 抚顺市| 樟树市|