hibernate映射文件many-to-one 元素屬性

  1. name:映射類屬性的名字
  2. column:關聯的字段
  3. class:關聯類的名字
  4. cascade:設置操作中的級聯策略 可選值爲 all所有操作情況均進行級聯、none所有操作情況均不進行級聯、save-update執行save和update操作時級聯、delete執行刪除操作時級聯
  5. fetch:設置抓取數據的策略 默認值爲select序列選擇抓取 可選值爲join外連接抓取
  6. update:進行update操作時是否包含此字段
  7. insert:進行insert操作時是否包含此字段
  8. property-ref:指定關聯類的一個屬性,這個屬性將會和本類的外鍵相對應(當外鍵參照一鍵時需要指定改屬性)

 

單向N——1 關係 只需從多的一端訪問1的一端;

應該在多的一端添加一個屬性,改屬性引用1端的關聯實體;

 

A .-->無連接表的N——1 關聯:

直接使用many-to-one 元素 來映射N——1 關聯時,hibernate將無須使用連接表,直接使用外鍵關聯策略來處理這種關聯映射;

 

eg:

<!-- 用於映射N-1關聯實體,指定關聯實體類爲Address
   指定外鍵列名爲addressId,並指定級聯全部操作 -->

  <many-to-one name="address" cascade="all"
   class="Address" column="addressId"/>

 

B.-->用連接表的N——1關聯:

如果需要使用連接表來映射單向N——1關聯,需要顯示使用<join.../>該元素強制將一個類的屬性映射到多張表中,通常也用於強制使用連接表!

         join元素:

table:指定連接表名;

schema:指定連接表所在的Schema,用於覆蓋根元素的default-Schema屬性;

catalog:指定連接表所在的Catalog,用於覆蓋根元素的default-Catalog屬性;

 

 

eg:

 

 

<!-- 使用join元素強制使用連接表 -->
   <join table="person_address" >
        <!-- 映射連接表中參照本表主鍵的外鍵列 -->
        <key column="personid"/>
        <!-- 映射連接表中參照關聯實體的外鍵列 -->
        <many-to-one name="address" cascade="all"
                  class="Address" column="addressId"/>

    </join>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章