我們繼續說Hibenrnate中的最後一個映射關係——集合映射。集合映射開發過程中應用的比較少,我們只做一下
簡單的介紹,在java中有四種類型的集合,分別是set、list、array、map。
區別:
|
是否可重複 |
是否有序 |
Set |
否 |
否 |
List |
是 |
有 |
Map |
Key不可重複 |
|
Array |
是 |
有 |
我們可以根據需求,選擇使用那種集合。在Hibenrnate中依舊是用不同的標籤來使用它們。Hibernate提供的映
射標籤:<set>、<list>、<map>、<array>。
對象模型:
關係模型:
映射文件:
<span style="font-size:18px;"><?xmlversion="1.0"?>
<!DOCTYPEhibernate-mapping PUBLIC
"-//Hibernate/HibernateMapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mappingpackage="com.wyj.hibernate">
<classname="CollectionMapping" table="t_collection_mapping" >
<idname="id">
<generatorclass="native"/>
</id>
<propertyname="name"/>
<setname="setValues" table="t_set_values">
<key column="set_id"/>
<!-- not-null:生成主鍵 -->
<element type="string"column="set_value" not-null="true"/>
<!-- 定義自定義類
<composite-elementclass=""></composite-element>
-->
</set>
<listname="listValues" table="t_list_values">
<key column="list_id"/>
<list-indexcolumn="list_index"/>
<element type="string"column="list_value"/>
</list>
<arrayname="arrayValues" table="t_array_values">
<key column="array_id"/>
<list-indexcolumn="array_index"/>
<element type="string"column="array_value"/>
</array>
<mapname="mapValues" table="t_map_values">
<key column="map_id"/>
<map-key type="string"column="map_key"/>
<element type="string"column="map_values"/>
</map>
</class>
</hibernate-mapping></span>
注:
在list標籤和array標籤中,內部對象是有序的,所以在添加映射標籤時需要使用list-index或者index標籤來標
明對象的順序,而且在添加子標籤時一定要按照順序添加,先添加<key>標籤,後添加<list-index>標籤,最後添加
<element>標籤
總結:
Hibenrnate的幾種基本映射我們已經介紹完了,根據實際需求選擇合適的映射關係,可以提供效率。其中關係映
射是我們學習的重點,理解時跟我們學習過的關係數據庫多聯繫,有助於我們的理解。而其他映射關係,在我們以前
的學習中都可以找到共同點,比如說繼承和集合。