Set、Bag、List、Map的映射方式

 

Set、Bag、List、Map的映射方式

1.在映射文件中选择映射方式是根据定义的集合来选择的:

2、Set:

    Set集合属性映射与List非常相似,但因为Set是无序的,不可重复的集合。因此set元素无须使用index元素来指定集合元素次序。映射文件与List相似,区别在于使用set元素时,无须增加index列来保存集合的次序。映射 Set 集合属性时,如果 element 元素包括 not-null = “true” 属性,则集合属性表以关联持久化类的外键和元素列作为联合主键,否则该表没有主键。但 List 集合属性不会,List 集合属性总是以外键列和元素此序列作为联合主键。

       <set name="定义的集合名 " table=" 列名">

       <key column="外键列名"/>

       <element type="集合值的类型" column="键名"/>

    </set>

3、(1)List:

•  List是有序集合,因此持久化到数据库时也必须增加一列来表示集合元素的次序在作相应映射时,list元素要求用list-index的子元素来映射有序集合的次序列。集合的属性的值会存放有另外的表中,不可能与持久化类存储在同一个表内。因此须以外键关联,用Key元素来映射该外键列。如果要设置列的添加顺序在映射文件中使用<list>.如果由于习惯不在映射文件中设置列的添加顺序则在映射文件中使用<bag>

 

       <list name="" table=”">

    <key column=" "/>

    <list-index column=" "/><!--指定某一列添加顺序-->

    <element type=" " column=" "/>

   

    </list>

(2)bag: 使用bag元素都将被映射成无序集合,而集合属性对应的表没有主键。Bag 元素只需要 key 元素来映射外键列,使用 element 元素来映射集合属性的每个元素

<bag name=" " table=" ">

       <key column=" "/>

       <element type=" " column=" "/>

    </bag>

4、map:map集合设置的是键值对。不仅需要映射属性值,还需要映射属性Key。映射Map集合属性时,同样需要指定外键列,同时还必须指定Map的Key列。系统将以外键列和Key列作为联合主键。 Map集合属性使用map元素映射时,该map元素需要key和map-key两个子元素。其中key子元素用于映射外键列,而map-key子元素则用于映射Map集合的Key。而map-key和element元素都必须确定type属性 

 

 其映射文件为:

<map name=" " table=" ">

<key column=" "/>外键列

        <map-key type="键的类型" column="键名 "/> map中的键

        <element type=" " column=" "/>map中的值

    </map>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值