- name:映射類屬性的名字
- column:關聯的字段
- class:關聯類的名字
- cascade:設置操作中的級聯策略 可選值爲 all所有操作情況均進行級聯、none所有操作情況均不進行級聯、save-update執行save和update操作時級聯、delete執行刪除操作時級聯
- fetch:設置抓取數據的策略 默認值爲select序列選擇抓取 可選值爲join外連接抓取
- update:進行update操作時是否包含此字段
- insert:進行insert操作時是否包含此字段
- 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>