hibernate提供了映射各种类型集合的方法,通过映射不同类型的集合,可以实现集合中的元素的不同特点
一、映射Set
Set集合不对其中的对象进行排序,并且不能存放重复对象。
二、映射List
LIst集合的特点是将其中的对象按照索引进行排序,并且可以通过索引获取指定对象,List集合可以存放重复对象。
三、映射Map
Map集合中的每一个元素由一个值对象组成,即有一个(key,value)组成,其中键对象(key)不可以重复,值对象(value)可以重复。
四、映射Bag
在java的API中并不存在Bag接口,只是hibernate提供的一种模拟行为,需要通过java API中的List接口实现。
在hibernate提供的Bag集合中可以存放重复的元素,并且不按特定的方式排序,该集合通过<bag>和<idbag>元素映射
五、对集合排序
在映射一对多关联和多对多关联时,通常希望集合中的关联对象是有序的,hibernate提供了两种集合中关联对象进行排序的方式
①在数据库中排序
hibernate在执行select语句从数据库加载记录时,会再select语句后追加order by 子句,对结果集进行排序,通过配置用来映射集合元素的order by 属性实现。
②在内存中排序
对于结果集中的关联对象,也可以通过java自带的集合排序功能对结果集尽心排序,通过配置用来映射集合元素的sort属性实现。
各种用来映射集合的元素对排序功能的支持情况
排序方式 <set> <list> <map> <idbagt> <bag>
数据库排序(order-by属性) √ √ √ √
内存排序(sort属性) √ √