hibernate中的集合

一,set 

set集合是最常用的集合,也是配置最简单的集合,set集合里面是不可以放重复的对象

二,list

对于list集合,和set集合的最大的区别是list里面的对象进行了排序,对于list的映射文件这样写:

dep: 

private Integer depId;

private String depName;

private List<Emp> empList;

映射文件:

<class name="Dep" table="dep">

<id name="depId" column="dep_id">

<generator class="native"/>

</id>

<property name="depName" column="dep_name"/>

<list name="empList">

<key column="dep_id"/>

<!--这里的列名是属于hibernate,在java类中没有相对应的字段,这个字段名是可以随便取的,会出现在数据库中-->

<!--其他的地方都跟set相同,只是多了个list-index column这里为了记录对象的顺序的,使得list里面的数据有顺序-->

<list-index column="order_col"/>  <!--主要是这里增加了一个排序的字段-->

<one-to-many class="hwt.pojo.Emp"/>

</list>

</class>

Bag

bag集合和list是一样的,只是bag集合不会有顺序,也没有一个像list中的list-index的字段,映射文件中的bag是属于hibernate的专有,java中是没有的,所以在pojo类中,要用list集合接收,bag是和list想对应的

pojo:

private Integer depId;

private String depName;

private List<Emp> empList; //bag要对应list集合

映射文件;

<bag name="empList">

<key column="dep_id"/><!-- 外键,数据库的列名 -->

<one-to-many class="hwt.pojo.Emp"/>

</bag>

对于bag里面的配置和set里面的的配置一样的,bag不进行排序,里面可以放重复数据

Map

pojo类中:private Map<Integer, Emp> map ;

映射文件:

<class name="Dep" table="dep" dynamic-update="true" dynamic-insert="true">

<id name="depId" column="dep_id">

<generator class="native"/>

</id>

<property name="depName" column="dep_name"/>

<map name="map">

<key column="dep_id"/><!-- 外键,数据库的列名 -->

<!-- 这里就是map集合的特有,是map的键 -->

<map-key type="java.lang.Integer" column="emp_id"></map-key>

<one-to-many class="hwt.pojo.Emp"/>

</map>

</class>

对于集合的使用,一般用的最多的是set集合 , 如果要想对其有插入的顺序,那么就可以使用list 集合,但是要增加一个排序的字段,如果不想排序,只是想嫩够放重复的数据,那么可以使用bag,bag不会产生一个多的字段,对于map和数组就用的比较少,map集合是一种键值对的形式,在映射文件中要配置一个<map-key type="" column=""/> 来指明键

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值