天生我才

          常用鏈接

          統(tǒng)計(jì)

          最新評(píng)論

          Hibernate中映射一對(duì)多關(guān)聯(lián)

              在域模型中,類與類之間最普遍的關(guān)系就是關(guān)聯(lián)關(guān)系.以客戶(Customer)和訂單(Order)的關(guān)系為例,一個(gè)客戶能發(fā)出多個(gè)訂單,而一個(gè)訂單只屬于一個(gè)客戶.從Order到Customer的關(guān)聯(lián)是多對(duì)一關(guān)聯(lián),每個(gè)Order對(duì)象都會(huì)引用一個(gè)Customer對(duì)象,因此在Order類中應(yīng)該定義一個(gè)Customer類型的屬性.
              從Customer到Order是一對(duì)多關(guān)聯(lián),意味著每個(gè)Customer對(duì)象都會(huì)引用一組Order對(duì)象,因此在Customer類中應(yīng)該定義一個(gè)集合類型的屬性,來引用所有Order對(duì)象.
             
          多對(duì)一的單向關(guān)聯(lián)關(guān)系:
                customer.hbm.xml
                      <hibernate-mapping>
                           <class name="Customer"  table="CUSTOMERS"> 
                               <id>
                                   …………
                              </class>
                       </hibernate-mapping>
             

                  order.hbm.xml
                      <hibernate-mapping>
                           <class name="Order"  table="ORDER"> 
                               <id>
                                   …………
                              <many-to-one name="customer" column="CUSTOMER_ID" class="Customer" not-null="true"/>
                              </class>
                       </hibernate-mapping>
                
          級(jí)聯(lián)保存和更新
                    在<many-to-one>中加入cascade="save-update" 默認(rèn)為none        


          一對(duì)多的雙向關(guān)聯(lián)關(guān)系,從內(nèi)存中讀取比數(shù)據(jù)庫(kù)中快,所有針對(duì)大量的根據(jù)客戶查詢訂單的操作,需要使用雙向。
           
           customer.hbm.xml
                      <hibernate-mapping>
                           <class name="Customer"  table="CUSTOMERS"> 
                               <id>
                                   …………
                              <set name="orders" cascade="save-update" inverse="true">     //根據(jù)Orders變化來同步兩張表
                                   <key column="CUSTOMER_ID"/>                                      //cascade="true"級(jí)聯(lián)刪除,刪除了客戶信息,訂單也自動(dòng)刪除
                                    <one -to-many class="Order">
                             </set>
                              </class>
                       </hibernate-mapping>
             

                  order.hbm.xml
                      <hibernate-mapping>
                           <class name="Order"  table="ORDER"> 
                               <id>
                                   …………
                              <many-to-one name="customer" column="CUSTOMER_ID" class="Customer" not-null="true"/>
                              </class>
                       </hibernate-mapping>

                  
                   

          posted on 2005-09-26 21:24 天生我才 閱讀(345) 評(píng)論(0)  編輯  收藏 所屬分類: Hibernate


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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 麦盖提县| 南漳县| 松江区| 新邵县| 田林县| 鸡西市| 阿拉善左旗| 安徽省| 虞城县| 平乡县| 太仆寺旗| 水富县| 亚东县| 棋牌| 高碑店市| 天等县| 英吉沙县| 藁城市| 威信县| 普安县| 内江市| 乐平市| 新乐市| 伽师县| 囊谦县| 忻城县| 镇赉县| 蓬溪县| 常州市| 麦盖提县| 林州市| 广丰县| 台东县| 浮梁县| 紫阳县| 五台县| 正阳县| 张家界市| 新闻| 大连市| 垦利县|