Hibernate之集合映射

    我们继续说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的几种基本映射我们已经介绍完了,根据实际需求选择合适的映射关系,可以提供效率。其中关系映


射是我们学习的重点,理解时跟我们学习过的关系数据库多联系,有助于我们的理解。而其他映射关系,在我们以前


的学习中都可以找到共同点,比如说继承和集合。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值