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步骤:
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步