八、其它集合类型
说明:在前面我们已经使用过set集合类型,其实除了set外,在Hibernate中还有list、Bag、Map这三种集合类型。
1. list集合的使用:
在前面的“一对多的关系”,已经使用过<set>,为了保存以前的操作,现重建一个名为“TheCollectionMapping”的新项目,把以前的“一对多关系”中用到的相关内容复制到此项目下即可。但有几点需要特别注意:(1)同样注意导入包,并注意主配置文件对实体配置文件的关联 (2)需要修改原Department中的<set>内容为:private List<Employee> emps; 并修改原实体配置文件<set>配置内容为<list>内容如下:
- <list name="emps">
-
<key column="depart_id" />
-
<list-index column="order_by" />
-
<one-to-many class="Employee" />
- </list>
<list name="emps">
<key column="depart_id" />
<list-index column="order_by" />
<one-to-many class="Employee" />
</list>
(3)并注意测试类中相应的修改(4)强调说明的是list查询时,具有顺序性,可以查看此项目下测试类的说明。(5)再次强调,为了充分理解一些问题,我们可以查看执行后表结构,也可以注释掉一些内容查看异常情况,并学会解决异常。注意配置文件中相关配置的作用,并尝试探索底层实现。
2.bag集合的使用:
如果在实体类中使用了List类型的属性,而我们并不希望保证集合顺序(保证集合顺序会采用排序算法,因而会占一些CPU资源)可以在配置文件中使用<bag>,它的使用情况与<list>唯一不同的就是不保证集合顺序。
3.map集合的使用:
一般是和实体类中java.util.Map属性进行配合使用,而且使用情况较少。除非某些特殊要求。 总结使用规则:大部分情况下使用<set>;需要保证集合顺序时使用<list>;想用java.util.List而不想保证顺序时,使用〈bag〉;<map>作为特殊使用。配置也基本一样,只是在<map>元素下多了<map-key>
4.使用集合中的注意事项:
(1)在实体类中集合只能被定义成接口而不能定义成具体类,因为集合会在运行时被替换成Hibernate的实现,而事实上把实体类的属性定义成接口也更便于扩展及良好的维护。这里不防提出一个原则,“尽量用接口定义”。(2)Hibernate操作List持久对象时,会用org.hibernate.collection.PersistentList重新实现List接口,操作完成后会把这个实现类重新setXXX放置。具体请参见TheCollectionMapping项目下的OneToManyTest类说明。其它的集合对象也是一样的道理。
分享到:
相关推荐
NULL 博文链接:https://mvplee.iteye.com/blog/2186453
NULL 博文链接:https://86asm.iteye.com/blog/493165
hiberante3 注解帮助文档hiberante3 注解帮助文档hiberante3 注解帮助文档hiberante3 注解帮助文档hiberante3 注解帮助文档
DAO层中对Hiberante实例,大家交流一下
Hiberante3.jar + API
最新springboot2基础hiberante5完整项目,打包jar,运行jsp,包括后台与前台,拦截器,登录,后台下载就可以使用,注意不是jpa,里面有完整Dao,千万级数据项目分离的代码,为了适合老项目开发特意集成hiberante5....
hibernate 源码 和hibernate配置的html文档。。非常全面的介绍了hibernate配置。分别在src和zh-cn文件中
开发工具:MyEclipse 6....Struts+Spring+Hiberante框架整合的简单登录系统 无需配置任何文件、只需在mysql中创建一个空数据库 如:create database test; 注:mysql数据库用户名:root 密码:root
hiberante查询方式使用详解,有hql,sql,qbc,以及存储过程,hiberante的基础查询
Hibernate Tools是一套全新而且完整的面向Hibernate3的工具集合,它包含了Eclipse插件和Ant编译流程。Hibernate Tools是JBoss Tools的核心组件,所以他也是JBoss Developer Studio的一部分
spring整合
Hiberante HTML 帮助文档 Hiberante HTML 帮助文档 Hiberante HTML 帮助文档
hibernate5.0.7jar包,主要是jar包,方便大家下载使用。主要是jar包,方便大家下载使用。主要是jar包,方便大家下载使用
Struts2+hiberante+Spring+Extjs+OA办公系统,完整包正常运行
QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ
hiberante4.2.3-part01
hiberante4.2.3-part2
hiberante annotations reference_cn
spring4+hiberante4+struts2+maven最新框架
添加各种项目需要的配置:文件上传 国际化等等 拦截器 日志记录等