Hibernate 缓存

Posted frank_cui

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hibernate 缓存相关的知识,希望对你有一定的参考价值。

一级缓存

1.不同session,相同语句, 会执行多次查询;

相同session, 相同语句,会执行一次查询

形式:

Employee emp = session.get(Employee.class,1);

 

 

2.一级缓存,又称session缓存。其生命周期伴随着session的开始和结束

3.一级缓存无法取消

4.一级缓存重要的两个API

5.query.list()不会使用一级缓存,即便是使用同一个session

形式:

Query query = session.creatQuery("from Employee");
List<Employee> list = query.list();

 

6.query.iterate() 会自己只发送查询主键的SQL(不包含其他属性),然后在从一级缓存查看其他属性值,如果有,从一级缓存取出;如果没有,再次发送详细的SQL。

Iterator it = query.iterate();

 

二级缓存

 

1.每个session公用的缓存

2.不是默认开启的,需要手工配置4步骤:

  

 

以上是关于Hibernate 缓存的主要内容,如果未能解决你的问题,请参考以下文章

一级缓存 ---- Hibernate框架学习

hibernate缓存机制详细分析 复制代码

Hibernate一级缓存

Hibernate session缓存

Android获取各个应用程序的缓存文件代码小片段(使用AIDL)

Hibernate总结