hibernate —— 一级缓存和二级缓存
2016-10-15 19:46
190 查看
1、一级缓存是session级别的,二级缓存和查询缓存都是sessionfactory级别的,查询缓存和二级缓存是一起来使用的
2、任何sql执行都会存入到同一个session的一级缓存中去
3、同时开启查询缓存和二级缓存,可以在不同session间共享缓存的结果
4、二级缓存缓存的是实体,不是属性
5、查询缓存的结果如果只是属性,那么查询缓存中存储的是id和属性的值,如果是实体的集合,那么查询缓存存储的只是实体的id,对应的实体会存储到二级缓存中去。
6、不同session间返回数据的顺序是,二级缓存先将数据返回,然后将数据存入本session的一级缓存中去,以便下次调用时的使用
一级缓存Session
一级缓存无法取消,用clear(),evict()管理
session 不能共享一级缓存,因它会伴随session的生命周期的创建和消毁;
Session缓存是实体级别的缓存,就是只有在查询对象级别的时候才使用,如果使用HQL和SQL是查询属性级别的,是不使用一级缓存的!切记!!!!
每一个Hibernate Session实例和一个数据库事务绑定,如果事务出现异常,应撤消事务.不论事务执行成功与否,最后都应该调用Session的close()方法,从而释放Hibernate Session实例占用的资源.
save()、update()、savaeOrUpdate()、get()或load(),以及调用查询接口的 list()、iterate()方法时,如果在Session缓存中还不存在相应的对象,Hibernate就会把该对象加入到第一级缓存中
二级缓存SessionFactory
在hibernate.cfg.xml中<class-cache usage="read-only" class="com.hibtest2.entity.Users"/>添加即可为相应对象配置至二级缓存
在执行各种条件查询时,如果所获得的结果集为实体对象的集合,那么就会把所有的数据对象根据ID放入到二级缓存中。
当Hibernate根据ID访问数据对象的时候,首先会从Session一级缓存中查找,如果查不到并且配置了二级缓存,那么会从二级缓存中查找,如果还查不到,就会查询数据库,把结果按照ID放入到缓存中。
删除、更新、增加数据的时候,同时更新缓存。
2、任何sql执行都会存入到同一个session的一级缓存中去
3、同时开启查询缓存和二级缓存,可以在不同session间共享缓存的结果
4、二级缓存缓存的是实体,不是属性
5、查询缓存的结果如果只是属性,那么查询缓存中存储的是id和属性的值,如果是实体的集合,那么查询缓存存储的只是实体的id,对应的实体会存储到二级缓存中去。
6、不同session间返回数据的顺序是,二级缓存先将数据返回,然后将数据存入本session的一级缓存中去,以便下次调用时的使用
一级缓存Session
一级缓存无法取消,用clear(),evict()管理
session 不能共享一级缓存,因它会伴随session的生命周期的创建和消毁;
Session缓存是实体级别的缓存,就是只有在查询对象级别的时候才使用,如果使用HQL和SQL是查询属性级别的,是不使用一级缓存的!切记!!!!
每一个Hibernate Session实例和一个数据库事务绑定,如果事务出现异常,应撤消事务.不论事务执行成功与否,最后都应该调用Session的close()方法,从而释放Hibernate Session实例占用的资源.
save()、update()、savaeOrUpdate()、get()或load(),以及调用查询接口的 list()、iterate()方法时,如果在Session缓存中还不存在相应的对象,Hibernate就会把该对象加入到第一级缓存中
二级缓存SessionFactory
在hibernate.cfg.xml中<class-cache usage="read-only" class="com.hibtest2.entity.Users"/>添加即可为相应对象配置至二级缓存
在执行各种条件查询时,如果所获得的结果集为实体对象的集合,那么就会把所有的数据对象根据ID放入到二级缓存中。
当Hibernate根据ID访问数据对象的时候,首先会从Session一级缓存中查找,如果查不到并且配置了二级缓存,那么会从二级缓存中查找,如果还查不到,就会查询数据库,把结果按照ID放入到缓存中。
删除、更新、增加数据的时候,同时更新缓存。
相关文章推荐
- hibernate 一级缓存二级缓存及查询缓存
- Hibernate一级缓存,二级缓存
- 初识hibernate_03 一级缓存和二级缓存
- hibernate 一级缓存、二级缓存
- Hibernate一级缓存,二级缓存
- Hibernate的一级缓存、二级缓存和查询缓存
- 对Hibernate一级缓存与二级缓存的解析
- 对Hibernate一级缓存与二级缓存的解析
- Java - 谈一谈Hibernate的一级缓存、二级缓存和查询缓存。
- hibernate一级缓存和二级缓存的区别
- Hibernate一级缓存和二级缓存的区别
- hibernate事务,一级缓存,二级缓存
- hibernate 一级缓存和二级缓存区别总结
- 黑马程序员:关于hibernate一级缓存二级缓存,查询缓存
- hibernate之 一级缓存和二级缓存
- Hibernate的一级缓存与二级缓存
- hibernate一级缓存和二级缓存的区别
- Hibernate——一级缓存__二级缓存__查询缓存
- Hibernate一级缓存、二级缓存
- Hibernate的一级缓存和二级缓存