Hibernate之集合配置

来源:互联网 发布:star打印机打印端口 编辑:程序博客网 时间:2024/06/05 12:45

集合属性的映射

  • 一个集合对应一个集合表。
  • 使用集合属性时,一定要使用接口,而不能声明为具体的实现类。因为经过Session操作后,集合就变成了Hibernate自己的集合实现类

值类型的集合

一. Set集合
1、常见属性:

name属性:关联对象在映射表中的配置;
table属性:关联对象表的名称
key子元素标签:关联外键配置
order-by属性:排序查询时的orderby 子句,是SQL语句
sort属性:”unsorted| natural | comparatorClass” 默认为:unsorted,这个属性可为TreeSet和TreeMap排序;如果使用了sort的属性,则定义容器时使用sortSet

2、示例:

<!-- 1-n关联 --> <set name="emps" lazy="false" cascade="save-update" sort="unsorted" order-by="deptId ASC" inverse="true">     <key column="deptId"></key>     <one-to-many class="com.qhit.lh.g4.jay.t2.bean.Emp"/> </set>

二. List集合
1、注意:

i,由于list集合时有序的,所以在集合表中需添加一列,用来作为联合主键,使查询结果有序。
ii,list-index子元素标签:用来存放索引的列

2、示例:

<list name="emps" lazy="false" cascade="save-update" inverse="true">     <key column="deptId"></key>     <list-index column="idx"></list-index>     <one-to-many class="com.qhit.lh.g4.jay.t2.bean.Emp"/></list>

三. Map集合
1,注意:

与list集合相似,较Set集合表多出一列,用来表示key

2,示例:

<map name="emps" table="t_emp">    <key column="deptId"></key>    <map-key type="string" column="key_"></map-key>    <element type="string" column="name"></element></map>

四. 数组
1,注意:

跟list集合类似

2,示例:

<array name="emps" table="t_emp">    <key column="deptId"></key>    <list-index column="idx"></list-index>    <element type="string" column="name"></element></array>

五. bag集合:
1,注意:

无序,可重复,与Set集合的映射基本一致

2,示例:

<bag name="emps" lazy="false" cascade="save-update" inverse="true">    <key column="deptId"></key>    <one-to-many class="com.qhit.lh.g4.jay.t2.bean.Emp"/></bag>
原创粉丝点击