在多對一和一對多的映射中.如一個部門對應多個人員,既可以看成是多個人員對應一個部門.所以在一對多或多對一映射關系中,沒有區別.
以多對一映射文件說明:
多的一方,如
人員持久化類映射文件需加入多對一元素: <many-to-one class="
部門類" colum="
外鍵" /> //
外鍵的定義方式,代替<property />定義.
一的一方,如
部門持久化類映射文件.由于為了
體現一一對應的原則(個人理解),需把多的一方映射為一個集合(因為一的一方要把多的一方看成一個整體,所以集合當然就放在一的一方.) , 需加入:
<set name="集合名"/> //集合中name 屬性必須.
<key> <colum name="
外鍵" not-null="true/> </key> //在集合中
指定多的一方的外鍵元素(集合中
兩個子元素的一個),
不代替<property />定義.
<one-to-many class="
人員類" /> //一對多元素(集合中
兩個子元素的一個).
</set>
(有外鍵的那一方,即為多方) (持久化即序列化)
多對多的映射講解:
多對多的映射文件中,由于JAVA類無法表示多對多的映射,所以把他們分解成兩個多對一/一對多,在中間引入一個JAVA BEAN 對象進行關聯.這個中間BEAN除了主鍵用<id />定義,其他屬性由于均為外鍵,所以采用外鍵定義方式---<many-to-one />.
以上講解有問題.舉的例子是一對多的.多對一比一對多簡單些.
posted on 2008-03-17 10:50
紫蝶∏飛揚↗ 閱讀(954)
評論(0) 編輯 收藏 所屬分類:
Hibernate