传智播客Hibernate视频教程学习笔记25
2009-08-06 11:20
197 查看
集合类型的使用:
之前用的都是set来保存一对多关系,Hibernate提供了不止一种的映射方法,比如list bag map等等,下面简要介绍就可以了
list:
只要将Department.hbm.xml中员工集合的映射改为list映射,并在测试代码中均改成list即可,可以发现,多设定了list-index,对应的列是order_col,在数据库表中会自动生成order_col一列来保存添加对象的顺序,比如在内存中部门员工列表先添加了Employee1,Employee2,那么在数据库表中也会照着这个顺序记录下来1, 2,反之,则是 2,1。
很多时候这种添加的顺序是毫无意义的,Bag与Set不同的地方是允许重复元素,而与list不同的是没有记录添加顺序的那一列字段。bag与java中的list容器对应,配置文件如下:
基本与set一样。
还有就是Map了,也比较常用。
通过map-key来制定map的key,value即为Employee类型,即Map<String,Employee>。注意的是这边Employee的name属性必须为unique,因为map的key是唯一的。
还有一点比较重要的是在设计pojo的时候,必须使用接口来声明这些容器,比如说是用Set,不可以在pojo中声明HashSet,因为Hibernate自己实现了一套Set容器,使用Set的时候,Hibernate实际使用了自己写的PersistSet,功能比set强大许多。
之前用的都是set来保存一对多关系,Hibernate提供了不止一种的映射方法,比如list bag map等等,下面简要介绍就可以了
list:
<list name="epys"> <key column="dpt_id"></key> <list-index column="order_col"></list-index> <one-to-many class="Employee"/> </list>
只要将Department.hbm.xml中员工集合的映射改为list映射,并在测试代码中均改成list即可,可以发现,多设定了list-index,对应的列是order_col,在数据库表中会自动生成order_col一列来保存添加对象的顺序,比如在内存中部门员工列表先添加了Employee1,Employee2,那么在数据库表中也会照着这个顺序记录下来1, 2,反之,则是 2,1。
很多时候这种添加的顺序是毫无意义的,Bag与Set不同的地方是允许重复元素,而与list不同的是没有记录添加顺序的那一列字段。bag与java中的list容器对应,配置文件如下:
<bag name="epys"> <key column="dpt_id" /> <element column="Employee"/> </bag>
基本与set一样。
还有就是Map了,也比较常用。
<map name="epys"> <key column="dpt_id" /> <map-key type="string" colum="name"/> <element column="Employee"/> </bag>
通过map-key来制定map的key,value即为Employee类型,即Map<String,Employee>。注意的是这边Employee的name属性必须为unique,因为map的key是唯一的。
还有一点比较重要的是在设计pojo的时候,必须使用接口来声明这些容器,比如说是用Set,不可以在pojo中声明HashSet,因为Hibernate自己实现了一套Set容器,使用Set的时候,Hibernate实际使用了自己写的PersistSet,功能比set强大许多。
相关文章推荐
- 传智播客Hibernate视频教程学习笔记1
- 传智播客Hibernate视频教程学习笔记6
- 传智播客Hibernate视频教程学习笔记18
- 传智播客Hibernate视频教程学习笔记20
- 传智播客Hibernate视频教程学习笔记29
- 传智播客Hibernate视频教程学习笔记43
- 传智播客Hibernate视频教程学习笔记54
- 传智播客Hibernate视频教程学习笔记14
- 传智播客Hibernate视频教程学习笔记33
- 传智播客Hibernate视频教程学习笔记38
- 传智播客Hibernate视频教程学习笔记42
- 传智播客Hibernate视频教程学习笔记50
- 传智播客Hibernate视频教程学习笔记53
- 传智播客Hibernate视频教程学习笔记2
- 传智播客Hibernate视频教程学习笔记10 11 12 13
- 传智播客Hibernate视频教程学习笔记15
- 传智播客Hibernate视频教程学习笔记21
- 传智播客Hibernate视频教程学习笔记24
- 传智播客Hibernate视频教程学习笔记27
- 传智播客Hibernate视频教程学习笔记31