传智播客Hibernate视频教程学习笔记25

来源:互联网 发布:热血传奇网络传输异常 编辑:程序博客网 时间:2024/06/05 20:58

 集合类型的使用:

之前用的都是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强大许多。