天生我才

          常用鏈接

          統計

          最新評論

          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 天生我才 閱讀(345) 評論(0)  編輯  收藏 所屬分類: Hibernate

          主站蜘蛛池模板: 莫力| 镇坪县| 田阳县| 怀化市| 咸宁市| 来安县| 卢湾区| 宣恩县| 安顺市| 天峨县| 紫金县| 柘城县| 郑州市| 永吉县| 察隅县| 吉首市| 闸北区| 浙江省| 澳门| 隆尧县| 牡丹江市| 诸城市| 磴口县| 长顺县| 锡林浩特市| 鄱阳县| 卓尼县| 越西县| 贡山| 铜陵市| 犍为县| 辽宁省| 崇左市| 汽车| 苏尼特右旗| 弋阳县| 龙南县| 利川市| 衡南县| 沁源县| 满洲里市|