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步骤:

  

原文地址:https://www.cnblogs.com/frankcui/p/10188323.html