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


目录
相关文章
|
3月前
|
Java 关系型数据库 数据库连接
Hibernate学习笔记(一)快速入门
Hibernate学习笔记(一)快速入门
|
11月前
|
SQL Java 数据库连接
Hibernate_学习笔记
Hibernate_学习笔记
|
SQL Java 数据库连接
hibernate入门学习笔记
hibernate入门学习笔记
64 0
|
存储 SQL Java
hibernate学习笔记之二(映射关系与懒加载)
hibernate学习笔记之二(映射关系与懒加载)
hibernate学习笔记之二(映射关系与懒加载)
|
SQL 存储 缓存
hibernate学习笔记之一(下)
hibernate学习笔记之一(下)
hibernate学习笔记之一(下)
|
SQL XML 安全
hibernate学习笔记之一(上)
hibernate学习笔记之一(上)
hibernate学习笔记之一(上)
|
SQL JSON Java
SpringBoot 整合 JPA-Hibernate|学习笔记
快速学习 SpringBoot 整合 JPA-Hibernate
138 0
SpringBoot 整合 JPA-Hibernate|学习笔记
|
Java 数据库连接 开发工具
Hibernate 控制反转|学习笔记
快速学习 Hibernate 控制反转
|
缓存 Java 数据库连接
Hibernate Session 生命周期|学习笔记
快速学习 Hibernate Session 生命周期
161 0
|
Java 数据库连接 数据库
Hibernate学习笔记8,session管理,事务控制
Hibernate学习笔记8,session管理,事务控制 Hibernate的事务管理 事务(Transaction)是工作中的基本逻辑单位,可以用于确保数据库能够被正确修改,避免数据只修改了一部分而导致数据不完整,或者在修改时受到用户干扰。
1598 0