本文共 1321 字,大约阅读时间需要 4 分钟。
第17章.Hibernate的检索方式
1.HQL检索方式 采用HQL检索时,需要定义字符串形式的HQL查询语句。2.QBC检索方式 QBCAPI由org.hibernate.Criteria接口,org.hibernate.criterion.Criterion接口 和org.hibernate.Restrictions类组成,支持运行时动态生成查询语句。创建Criteria对象;通过Restrictions设定Criterion条件;调用list()方法执行查询。
3.使用别名 检索一个持久化类的所有实例。//采用HQL检索方式List result=session.createQuery("from Customer").list();//采用QBC方式List result=session.createCriteria(Customer.class).list();
4.多态查询
查询出当前类及所有子类的实例。5.对查询结果排序,以及分页查询6.检索单个对象7.可滚动的结果集第22章.Hibernate的缓存
1.持久化层缓存的范围决定了缓存的生命周期以及能被谁访问。可以分为事务范围 进程范围和集群范围。事务范围的缓存是持久化层的第一级缓存,通常是必须的,进程范围或集群范围是第二级缓存,通常是可选的。2.当两个并发的事务同时访问持久化层的同一数据缓存时,也有可能出现各类缓存问题。3.第二级缓存可以设置几种缓存隔离策略:事务型,读写型,非严格读写型,只读型。
事务隔离级别越高,并发性能就越低。 符合以下条件的数据可以放到第二级缓存中:很少被修改的数据;不是很重要的数据;不会被并发访问的数据;参考数据;
4.Hibernate 提供两级缓存,第一级缓存是session级的缓存,
第二级缓存是一个可插拔的缓存插件,由SessionFactory负责管理。由于SessionFactory对象的生命周期和应用程序的整个进程对应,因此第二级缓存是进程范围或者集群范围的缓存。 缓存适配器(Cache Provider) 由于把具体的缓存实现软件与Hibernate集成。 Hibernate 还为查询结果提供了一个查询缓存,它依赖于第二级缓存。
5.当应用程序调用Session的save()/update()/saveorupdate()/load()/或get()方法,以及调用Query查询接口的list()/
iterate()或filter()方法时。如果在session的缓存中还存在相应的对象,Hibernate就会把该对象加入到第一级缓存中,当清理缓存时,Hibernate会根据缓存中对象的状态来同步更新数据库。 Session提供了两个方法,但多数情况并不提倡使用。 evict(Object 0 );从缓存中清除参数指定的持久化对象。 clear();清空缓存中所有持久化对象。
6.配置二级缓存主要包含以下步骤:
(1)选择需要使用第二级缓存的持久化类,设置它的第二级缓存的并发访问策略。 (2)选择合适的缓存插件,每一种缓存插件都有自带的配置文件,需要手工配置。转载地址:http://cxbno.baihongyu.com/