hibernate 集合(set, list, array,bag, map)
2012-05-03 09:29
423 查看
Hibernate中将集合分为四类:
(1)<set>元素:可以映射类型为java.util.Set接口的属性,它的元素存放没有顺序且不允许重复,也可以映射类型为java.util.SortSet接口的属性,它的元素可以按自然属性排序
(2)<list>元素:可以映射类型为java.util.List接口的属性,它需要在结合属性对象的数据库表中用一个额外的索引列保存每一个元素的位置,即是有属性可重复的。
(3)<bag>元素:可以映射java.util.Collection接口的属性,它的元素可能重复,但不保存属性,和set差不多,正因为有它,是因为如果通常使用list比较多,并且不想让添加一列的话,就用它。
(4)<map>元素:可以映射为java.util.Map接口的属性,它的元素以键值对的形式保存,也是无序的,也可以映射类型为java.util.SortMap接口的属性,它的元素可以按自然顺序排序。
(5)<array>元素:可以映射类型为数组的属性,但在实际运用中用的极少
Bag
是最差的。因为 bag 允许重复的元素值,也没有索引字段,因此不可能定义主键。 Hibernate 无法判断出重复的行。当这种集合被更改时,Hibernate 将会先完整地移除 (通过一个(in a single
Lists,maps 和 sets 用于更新效率最高(索引key),查询的时候效率都是一样的.
list,map 和
idbags 是最高效的(非反向)集合类型,set 则紧随其后。 在 Hibernate 中,set 应该时最通用的集合类型。
Set:
Map:
<map name="emps" table="emp" order-by="empno desc">
<key><column name="deptno"></column></key>
<map-key type="java.lang.Integer" column="empno"></map-key>
<one-to-many class="org.hzy.dao.Emp"/>
</map>
(1)<set>元素:可以映射类型为java.util.Set接口的属性,它的元素存放没有顺序且不允许重复,也可以映射类型为java.util.SortSet接口的属性,它的元素可以按自然属性排序
(2)<list>元素:可以映射类型为java.util.List接口的属性,它需要在结合属性对象的数据库表中用一个额外的索引列保存每一个元素的位置,即是有属性可重复的。
(3)<bag>元素:可以映射java.util.Collection接口的属性,它的元素可能重复,但不保存属性,和set差不多,正因为有它,是因为如果通常使用list比较多,并且不想让添加一列的话,就用它。
(4)<map>元素:可以映射为java.util.Map接口的属性,它的元素以键值对的形式保存,也是无序的,也可以映射类型为java.util.SortMap接口的属性,它的元素可以按自然顺序排序。
(5)<array>元素:可以映射类型为数组的属性,但在实际运用中用的极少
Bag
是最差的。因为 bag 允许重复的元素值,也没有索引字段,因此不可能定义主键。 Hibernate 无法判断出重复的行。当这种集合被更改时,Hibernate 将会先完整地移除 (通过一个(in a single
DELETE))整个集合,然后再重新创建整个集合。因此 Bag 是非常低效的。
Lists,maps 和 sets 用于更新效率最高(索引key),查询的时候效率都是一样的.
list,map 和
idbags 是最高效的(非反向)集合类型,set 则紧随其后。 在 Hibernate 中,set 应该时最通用的集合类型。
Set:
<set name="emps" table="emp" cascade="all"> <key> <column name="deptno"></column> </key> <one-to-many class="org.hzy.dao.Emp"/> </set>Bag:
<bag name="emps" table="emp" order by="empno desc"> <key><column name="deptno"></column></key> <one-to-many class="org.hzy.dao.Emp"/> </bag>List:
<list name="emps" table="emp"> <key><column name="deptno"></column></key> <list-index column="empno" base="100"></list-index> <one-to-many class="org.hzy.dao.Emp"/> </list>
Map:
<map name="emps" table="emp" order-by="empno desc">
<key><column name="deptno"></column></key>
<map-key type="java.lang.Integer" column="empno"></map-key>
<one-to-many class="org.hzy.dao.Emp"/>
</map>
相关文章推荐
- Hibernate的集合映射(Set、List、Array、Map、Bag)
- 【Hibernate】Hibernate的集合映射(Set、List、Array、Map、Bag)
- Hibernate的集合映射(Set、List、Array、Map、Bag)
- Hibernate常见的集合映射主要有Set,List,Array,Map,Bag等
- Hibernate 多表关联映射- Hibernate中使用的集合类型(set,list,array,bag,map)
- Hibernate的集合映射(Set、List、Array、Map、Bag)
- Hibernate 多表关联映射- Hibernate中使用的集合类型(set,list,array,bag,map)
- Hibernate常见的集合映射主要有Set,List,Array,Map,Bag
- Hibernate常见的集合映射 Set,List,Array,Map,Bag
- hibernate 集合(set, list, array,bag, map)
- Hibernate的集合映射(Set、List、Array、Map、Bag)
- Hibernate的集合映射(Set、List、Array、Map、Bag)
- Hibernate 多表关联映射- Hibernate中使用的集合类型(set,list,array,bag,map)
- Hibernate 多表关联映射- Hibernate中使用的集合类型(set,list,array,bag,map)
- Hibernate常见的集合映射主要有Set,List,Array,Map,Bag .
- [转]NHibernate集合映射中的set, list, map, bag, array
- hibernate第二天——值类型的集合(set,map,list,bag,sort,order-by),实体类型集合,关联关系,3l类型Long,inverse,级联
- 集合映射(set, list, array,bag, map)详解
- NHibernate集合映射中的set, list, map, bag, array
- NHibernate集合映射中的set, list, map, bag, array