天生我才

          常用鏈接

          統計

          最新評論

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

          主站蜘蛛池模板: 新兴县| 延川县| 古蔺县| 临高县| 稻城县| 龙陵县| 宜昌市| 左云县| 博乐市| 宁阳县| 宽甸| 阿鲁科尔沁旗| 皮山县| 靖宇县| 霍林郭勒市| 红原县| 元氏县| 斗六市| 射阳县| 钦州市| 开平市| 郯城县| 土默特右旗| 介休市| 平安县| 贵州省| 泰顺县| 娱乐| 沐川县| 晋城| 新化县| 忻州市| 漯河市| 麟游县| 康保县| 禹城市| 罗定市| 罗平县| 同德县| 尖扎县| 海兴县|