天生我才

          常用鏈接

          統計

          最新評論

          Hibernate中映射一對多關聯

              在域模型中,類與類之間最普遍的關系就是關聯關系.以客戶(Customer)和訂單(Order)的關系為例,一個客戶能發出多個訂單,而一個訂單只屬于一個客戶.從Order到Customer的關聯是多對一關聯,每個Order對象都會引用一個Customer對象,因此在Order類中應該定義一個Customer類型的屬性.
              從Customer到Order是一對多關聯,意味著每個Customer對象都會引用一組Order對象,因此在Customer類中應該定義一個集合類型的屬性,來引用所有Order對象.
             
          多對一的單向關聯關系:
                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>
                
          級聯保存和更新
                    在<many-to-one>中加入cascade="save-update" 默認為none        


          一對多的雙向關聯關系,從內存中讀取比數據庫中快,所有針對大量的根據客戶查詢訂單的操作,需要使用雙向。
           
           customer.hbm.xml
                      <hibernate-mapping>
                           <class name="Customer"  table="CUSTOMERS"> 
                               <id>
                                   …………
                              <set name="orders" cascade="save-update" inverse="true">     //根據Orders變化來同步兩張表
                                   <key column="CUSTOMER_ID"/>                                      //cascade="true"級聯刪除,刪除了客戶信息,訂單也自動刪除
                                    <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 天生我才 閱讀(336) 評論(0)  編輯  收藏 所屬分類: Hibernate


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


          網站導航:
           
          主站蜘蛛池模板: 隆德县| 屏边| 连城县| 云龙县| 加查县| 长沙县| 泾川县| 昌黎县| 铁力市| 砀山县| 鱼台县| 射洪县| 凤山县| 宁明县| 儋州市| 乌拉特前旗| 乌苏市| 崇义县| 新绛县| 甘泉县| 武定县| 巩义市| 浠水县| 宁武县| 定结县| 永新县| 桑日县| 阜宁县| 定日县| 巴彦淖尔市| 玉溪市| 永清县| 图木舒克市| 寻甸| 开鲁县| 金寨县| 罗山县| 嘉鱼县| 巫溪县| 安乡县| 连州市|