我们继续说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的几种基本映射我们已经介绍完了,根据实际需求选择合适的映射关系,可以提供效率。其中关系映
射是我们学习的重点,理解时跟我们学习过的关系数据库多联系,有助于我们的理解。而其他映射关系,在我们以前
的学习中都可以找到共同点,比如说继承和集合。