《精通 Hibernate》学习笔记

第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)选择合适的缓存插件,每一种缓存插件都有自带的配置文件,需要手工配置。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值